Foros del Web » Programando para Internet » PHP »

Reemplazar por url

Estas en el tema de Reemplazar por url en el foro de PHP en Foros del Web. Hola!! Quisiera saber como reemplazo una cadena por otra pero en la que varía su interior, me explico: Si un usuario escribe en un formulario: ...
  #1 (permalink)  
Antiguo 23/11/2008, 11:52
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
Reemplazar por url

Hola!!

Quisiera saber como reemplazo una cadena por otra pero en la que varía su interior, me explico:
Si un usuario escribe en un formulario: [URLL]http://mipagina[/URLL], lo reemplace por: <a href="http://mipagina">http://mipagina<a>

El problema es que el usuario puede escribir varias páginas:
[URLL]http://pagina1[/URLL]
[URLL]http://pagina2[/URLL]
[URLL]http://pagina3[/URLL]

...quiero que al enviar el form, me lo reemplace por:
<a href="http://pagina1">http://pagina1<a>
<a href="http://pagina2">http://pagina2<a>
<a href="http://pagina3">http://pagina3<a>

Saludos, y espero que entiendan mi pregunta...
  #2 (permalink)  
Antiguo 23/11/2008, 15:35
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Reemplazar por url

asi de facil.

Código PHP:
<?php
$remplaso
$_POST["palabra"]; 
$remplaso1 str_replace("[URLL]",'<a href="',$remplaso); 
$remplaso1 str_replace("[/URLL]",'">',$remplaso1);
$remplaso2 str_replace("[URLL]",'',$remplaso);
$remplaso2 str_replace("[/URLL]",'<a>',$remplaso2);
$remplaso $remplaso1.$remplaso2;
print 
$remplaso;
?>
<form action="remplaso.php" target="_parent" method="post">
<input type="text" name="palabra" value="[URLL]http://pagina3[/URLL]" size="40">
<input type="submit" value="ver ejemplo">
</form>

Última edición por enlinea777; 23/11/2008 a las 17:08
  #3 (permalink)  
Antiguo 23/11/2008, 15:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Reemplazar por url

Es mas facil usar expresiones regulares para ese proposito.
  #4 (permalink)  
Antiguo 23/11/2008, 16:30
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Respuesta: Reemplazar por url

Cita:
Iniciado por Ronruby Ver Mensaje
Es mas facil usar expresiones regulares para ese proposito.
de nada sirbe que lo digas si no pones por lo menos un ejemplo.
  #5 (permalink)  
Antiguo 23/11/2008, 16:43
 
Fecha de Ingreso: septiembre-2008
Ubicación: Lanzarote, Canarias
Mensajes: 486
Antigüedad: 15 años, 7 meses
Puntos: 41
Respuesta: Reemplazar por url

http://www.desarrolloweb.com/articulos/2438.php
  #6 (permalink)  
Antiguo 23/11/2008, 16:51
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Reemplazar por url

Cita:
Iniciado por enlinea777 Ver Mensaje
de nada sirbe que lo digas si no pones por lo menos un ejemplo.
Lo siento, pero yo no estoy aqui para hacerle la tarea a nadie. No puedo ir de tema en tema diciendoles que hacer. Ejemplos? En el manual hay muchos!

Pero si te satisface:

Código PHP:
$texto "lbha blhaasdasd [url]http://www.google.com[/url] asdasdasd";
$newtexto preg_replace("#\[url\](.*)\[/url\]#""<a href=\"$1\">$1</a>"$texto);
echo 
$newtexto
:O! Sencillo no?
  #7 (permalink)  
Antiguo 23/11/2008, 17:05
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 15 años, 11 meses
Puntos: 127
Información observacion

Cita:
Iniciado por Ronruby Ver Mensaje
Lo siento, pero yo no estoy aqui para hacerle la tarea a nadie. No puedo ir de tema en tema diciendoles que hacer. Ejemplos? En el manual hay muchos!

Pero si te satisface:

Código PHP:
$texto "lbha blhaasdasd [url]http://www.google.com[/url] asdasdasd";
$newtexto preg_replace("#\[url\](.*)\[/url\]#""<a href=\"$1\">$1</a>"$texto);
echo 
$newtexto
:O! Sencillo no?
por lomenos respondiste algo ahora si vale la pena el comentario primero y por el segundo, tendrias que tomar en cuenta que a la hora de googlear esto aparecera y las personas no tendran que volver a preguntar es una gran ayuda para todos.
y disculpa pero yo no sabia que eran "expresiones regulares" como la mayoria que empiesa con sus primeros pasos en php. (esto es un buen ejemplo).

  #8 (permalink)  
Antiguo 24/11/2008, 09:14
(Desactivado)
 
Fecha de Ingreso: marzo-2008
Mensajes: 641
Antigüedad: 16 años, 1 mes
Puntos: 7
De acuerdo Función para convertir a html

Hola!!

Me han ayudado muchísimo todas sus respuestas.

La respuesta de enlinea777 me ha servido para descubrir la función str_replace(). Gracias al link de codig0, he encontrado el script perfecto para mis planes... aunque no funcionaba en mi servidor, entonces, utilizando el código de Ronruby, lo he modificado, creando una función maravillosa para mi proyecto.

Código PHP:
<?php
function converthtml($texto){
   
$a = array(
      
"#\[i\](.*)\[/i\]#",
      
"#\[b\](.*)\[/b\]#",
      
"#\[u\](.*)\[/u\]#",
      
"#\[img\](.*)\[/img\]#",
      
"#\[url=(.*)\](.*)\[/url\]#"
   
);
   
$b = array(
      
"<i>$1</i>",
      
"<b>$1</b>",
      
"<u>$1</u>",
      
"<img src=\"$1\" />",
       
"<a href=\"$2\" target=\"_blank\">$1</a>"
   
);
   
$textonobr preg_replace($a$b$texto);
      
$textohtml nl2br($textonobr);
   echo 
$textonobr;


$texto="[url=Esto]http://www.google.com[/url] es una url, y [u]yo[/u] ya he [i]aprendido[/i] otro poquito de [b]php[/b]";
converthtml($texto);
?>
Gracias a todos
  #9 (permalink)  
Antiguo 24/11/2008, 09:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: observacion

Cita:
Iniciado por enlinea777 Ver Mensaje
[...] a la hora de googlear esto aparecera y las personas no tendran que volver a preguntar [...] yo no sabia que eran "expresiones regulares" [...]
y porque no simplemente Google'aste "expresiones regulares"

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:39.