Foros del Web » Programando para Internet » PHP »

Separar texto usando DOS O MÁS separadores

Estas en el tema de Separar texto usando DOS O MÁS separadores en el foro de PHP en Foros del Web. Tengo la siguiente función: Código PHP: function  convertidor_urls ( $mensaje ){           $palabras = split ( chr ( 32 ), $mensaje );     for ( $i ...
  #1 (permalink)  
Antiguo 27/02/2007, 08:46
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Separar texto usando DOS O MÁS separadores

Tengo la siguiente función:

Código PHP:
function convertidor_urls($mensaje){
    
    
$palabras=split(chr(32),$mensaje);
    for (
$i=0;$i<count($palabras);$i++){
        if (
substr($palabras[$i],0,7)=="http://"$mensaje=str_replace($palabras[$i],"<a target=\"_blank\" href=\"".$palabras[$i]."\">".$palabras[$i]."</a>",$mensaje);
    }
    
    return 
$mensaje;

Lo que hace es dividir un texto en palabras atendiendo a los espacios que encuentra.

Pero en el texto también puede haber retornos de carro...

Puedo cambiar dónde dice:
Código PHP:
$palabras=split(chr(32),$mensaje); 
Y poner:
Código PHP:
$palabras=split(chr(10),$mensaje); 
Para que me divida el texto por retornos de carro pero lo que quiero es usar AMBOS caracteres para dividir el texto, el espacio y el retorno de carro...

¿Como lo hago?

Saludos y gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 27/02/2007, 09:11
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Separar texto usando DOS O MÁS separadores

hola

utiliza la funcion preg_split() y create un patron que divida por cualqiera de los dos caracteres,,

pero si es nada mas que para convertir urls en links, tal vez te convenga mas usar preg_replace() y hacerlo directamente, sin tener que analizar palabra por palabra,, ahi en la documentacion de preg_replace() hay ejemplos muy sencillos para hacerlo si te interesa 8D

exitos
  #3 (permalink)  
Antiguo 28/02/2007, 05:24
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: Separar texto usando DOS O MÁS separadores

El problema es no tengo ni idea de cómo se crea el patrón ese...

Gracias.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #4 (permalink)  
Antiguo 28/02/2007, 05:54
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Separar texto usando DOS O MÁS separadores

mira aqui tienes todo lo que necesitas saber,y mas :P

http://ar.php.net/manual/es/referenc...ern.syntax.php

exitos
  #5 (permalink)  
Antiguo 28/02/2007, 11:31
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: Separar texto usando DOS O MÁS separadores

He hecho esta función que funciona casi bien:

Código PHP:
function convertidor_urls2($mensaje){

    
$palabras=preg_split("/[\s]+/",$mensaje);
    for (
$i=0;$i<count($palabras);$i++){
        if (
substr($palabras[$i],0,7)=="http://"$mensaje=str_replace($palabras[$i],"<a target=\"_blank\" href=\"".$palabras[$i]."\">".$palabras[$i]."</a>",$mensaje);
    }
    return 
$mensaje;

El problema es que si escribo un texto en el que hay dos enlaces iguales hace cosas raras, por ejemplo:

"Texto con dos enlaces:

Primer enlace: http://localhost/index.php
Segundo enlace: http://localhost/index.php"

¿Cómo lo puedo solucionar?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #6 (permalink)  
Antiguo 28/02/2007, 11:33
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Re: Separar texto usando DOS O MÁS separadores

Por cierto, cuando guardo un texto en la base de datos que contiene saltos de línea éstos se guardan correctamente pero a la hora de mostrarlos en la web no aparecen, ¿a qué se debe y como puedo hacer para que el texto se muestre tal cual?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.