Foros del Web » Programando para Internet » PHP »

consulta sobre expresiones regulares, A ver si se puede hacer lo que necesito.

Estas en el tema de consulta sobre expresiones regulares, A ver si se puede hacer lo que necesito. en el foro de PHP en Foros del Web. Buenos días compañeros, y gracias por leerme. Lo que tengo es lo siguiente, una variable que me recupera el cuerpo de un blog, esta variable ...
  #1 (permalink)  
Antiguo 30/03/2009, 01:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
consulta sobre expresiones regulares, A ver si se puede hacer lo que necesito.

Buenos días compañeros, y gracias por leerme.

Lo que tengo es lo siguiente, una variable que me recupera el cuerpo de un blog, esta variable se llama $content.

Lo que estoy buscando es que cuando dentro de la variable $content aparezca una expresión como la siguiente:

[descargar:adjunto.zip]
o
[descargar:propuesta.pdf]
o
[descargar:documento.odt]
etc...

pueda sustituirlo cada una de ellas por el html correspondiente para descargarlo, claro esta al ser parte de un blog el nombre de los archivos dentro de los corchetes puede variar.

Un ejemplo dummy de lo que puede tener la variable $content es el siguiente:

Cita:
Lorem ipsum dolor sit amet, fringilla suscipit phasellus posuere pede cursus, quis dolor luctus amet in, quis suspendisse. Placerat quis nibh risus tincidunt laborum ultricies, quam egestas nec mauris nec ante, congue in faucibus quis sapien, in placerat integer velit, amet eu ligula. Dolor rhoncus purus felis, donec mollis dapibus praesent rhoncus lacus, a lacus ligula. Vestibulum et arcu ac nostra in sem, nunc nullam aliquam euismod etiam ultricies, et ac sem facilisis in sed tellus, ac phasellus ut dolor, facilisis purus commodo duis.
[descargar:documento.odt]

Lorem ipsum dolor sit amet, fringilla suscipit phasellus posuere pede cursus, quis dolor luctus amet in, quis suspendisse. Placerat quis nibh risus tincidunt laborum ultricies, quam egestas nec mauris nec ante, congue in faucibus quis sapien, in placerat integer velit, amet eu ligula. Dolor rhoncus purus felis, donec mollis dapibus praesent rhoncus lacus, a lacus ligula. Vestibulum et arcu ac nostra in sem, nunc nullam aliquam euismod etiam ultricies, et ac sem facilisis in sed tellus, ac phasellus ut dolor, facilisis purus commodo duis.
[descargar:propuesta.pdf]

Lorem ipsum dolor sit amet, fringilla suscipit phasellus posuere pede cursus, quis dolor luctus amet in, quis suspendisse. Placerat quis nibh risus tincidunt laborum ultricies, quam egestas nec mauris nec ante, congue in faucibus quis sapien, in placerat integer velit, amet eu ligula. Dolor rhoncus purus felis, donec mollis dapibus praesent rhoncus lacus, a lacus ligula. Vestibulum et arcu ac nostra in sem, nunc nullam aliquam euismod etiam ultricies, et ac sem facilisis in sed tellus, ac phasellus ut dolor, facilisis purus commodo duis.

Y me gustaría convertir los corchetes y lo que va dentro en el enlace para descagar los archivos.

¿Alguna sugerencia de por donde tengo que empezar a investigar para resolver esto? Creo que sería con expresiones regulares, pero nunca las he manejado.

Gracias

Oskar
  #2 (permalink)  
Antiguo 30/03/2009, 01:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: consulta sobre expresiones regulares, A ver si se puede hacer lo que neces

claro que se puede!!

lee lo siguiente http://www.forosdelweb.com/f18/aport...s-pcre-646110/

ejemplo
Código PHP:
echo preg_replace('/\[foo:(\w+)\]/i''<a href="does.php?on=$1">$1</a>''bla bla [foo:why.ext] bla bla [foo:what.is] bla bla'); 

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

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/03/2009, 03:19
 
Fecha de Ingreso: agosto-2006
Mensajes: 219
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: consulta sobre expresiones regulares, A ver si se puede hacer lo que neces

Cita:
Iniciado por pateketrueke Ver Mensaje
claro que se puede!!

lee lo siguiente http://www.forosdelweb.com/f18/aport...s-pcre-646110/

ejemplo
Código PHP:
echo preg_replace('/\[foo:(\w+)\]/i''<a href="does.php?on=$1">$1</a>''bla bla [foo:why.ext] bla bla [foo:what.is] bla bla'); 

suerte!

Muchas gracias por la respuesta compañero, estoy leyendo el enlace que me has sugerido, y la página de php.net y algunas cosas que estoy encontrando por la red.

pero tengo una serie de preguntas, a ver si me las puedes contestar, porque creo que empiezo a entender como funcionan las expresiones regulares:
Cita:
'/\[foo:(\w+)\]/i'
Correspondería a la cadena que hay que encontrar, lo que no termino de entender que son es o que hace lo siguiente:
:'/
t
i'

El segundo elemento es el elemento que tiene que sustituir al primero.
Cita:
'<a href="does.php?on=$1">$1</a>'
De aquí no entiendo de como sacar el valor de $1, ya que es el nombre del archivo, y que correspondería a "nombre"+"tipo de arhcivo.
¿Lo saca automáticamente php de (\w+)?


La tercera parte
Cita:
'bla bla [foo:why.ext] bla bla [foo:what.is] bla bla')
entiendo que correspondería a la variable $content que contiene las cadenas de texto.

Un saludo y gracias

Oskar
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 05:56.