Comunidad de diseño web y desarrollo en internet online

Expresion regular (link)

Citar            
MensajeEscrito el 18 Oct 2008 01:55 pm
Hola que tal!... Me gustaria preguntarles algo, a ver si me pueden ayudar...
Tengo la siguiente expresión regular en php:

Código :

        

$transformando = $row['texto'];
$transformando = eregi_replace('(^| )(http://www([.]?[a-zA-Z0-9?+%~&=_/-])*)', '\\1<a href="\\2" target="_blank">\\2</a>', $transformando); 

echo $transformando;



Como se puede observar, busca en el texto los links que pueda tener.

ASI ME FUNCIONA:
Hola como estas, este es mi link[espacio]http://www.google.com

ASI NO ME FUNCIONA:
Hola como estas, este es mi link[enter]
http://www.google.com

ASI ME FUNCIONA:
Hola como estas, este es mi link[enter]
[espacio]http://www.google.com

¿Existe alguna forma para que la expresión regular me tome el enter tambien sin tener que poner un espacio?.

Un abrazote, y muchas gracias... :love:

Por greel

41 de clabLevel



Genero:Masculino  

2003

msie
Citar            
MensajeEscrito el 18 Oct 2008 04:28 pm
utiliza \s, que se refiere a cualquier tipo de espacio en blanco.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 18 Oct 2008 06:51 pm
¿El \s iria entre corchetes? :love:
Perdon que pregunte de vuelta, es que no se como hacer para que al apretar el enter me lo tome como un link tambien. por ejemplo, si yo agrego esto:

$transformando = eregi_replace('(^| )(http://www([.]?[a-zA-Z0-9?+%~&=_/-])*)', '\\1<a href="\\2" target="_blank">\\2</a>', $transformando);

Es espacio que se ve dentro de (^| ) es porque toma el espacio, si yo agrego una "d" por ejemplo busca donde el link empiece asi dhttp:// ahora si quiera agregar tambien para que me reconozca la tecla enter, ¿Que puedo hacer?.

Agradezco enormente tu tiempo!.

Por greel

41 de clabLevel



Genero:Masculino  

2003

msie
Citar            
MensajeEscrito el 18 Oct 2008 08:12 pm
creeo q maki te dice q hagas esto

$transformando = $row['texto'] \s;

creeo jajaja ;-D

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 20 Oct 2008 02:33 am

Código :

<?php
// codigo
$transformando = $row['texto'];
$transformando = preg_replace('#(^|\s)(http://www([.]?[a-zA-Z0-9?+%~&=_/-])*)#is', '\\1<a href="\\2" target="_blank">\\2</a>', $transformando); 
echo $transformando;
?>

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 20 Oct 2008 09:50 pm
:-D creeo q no era como yo decia bueno todos los dias se aprende algo nuevo ;-D

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 22 Oct 2008 04:18 am
Es lo que necesitaba!!! Maikel!!! Gracias!!! Super agradecido estoy te debo una!!! :D

Por greel

41 de clabLevel



Genero:Masculino  

2003

msie
Citar            
MensajeEscrito el 25 Jul 2009 05:50 pm
Si pero esa expresión regular tiene la falencia de que los subdominio no están apuntados :)
me refiero a que no todos anteponen WWW cuando tienen un subdominio, ya que no es necesario...
así que deberían colocar algo como:


Código PHP :

<?php
Function URLr($a) {
return preg_replace('#(^|\s)(http://([a-zA-Z0-9\-.]?[a-zA-Z0-9?+%~&=_/-])*)#is', '\\1<a href="\\2" target="_blank">\\2</a>', $a);
?>


y eso daría el resultado mucho mas especifico y mas cómodo XD especifico que queremos...

Por nocrosis

65 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.