Foros del Web » Programando para Internet » PHP »

Cambiar contenido de etiquetas HTML

Estas en el tema de Cambiar contenido de etiquetas HTML en el foro de PHP en Foros del Web. Hola a todos: No se si se podrá hacer con PHP, llevo mucho tiempo buscando información y lo máximo que he encontrado es la función ...
  #1 (permalink)  
Antiguo 21/10/2004, 11:34
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
Cambiar contenido de etiquetas HTML

Hola a todos:

No se si se podrá hacer con PHP, llevo mucho tiempo buscando información y lo máximo que he encontrado es la función str_replace() pero yo creo que no me sirve.

Necesito modificar el contenido de las etiquetas HTML de una página que se muestra utilizando un include.

Lo que quiero es que todas las imágenes que están en ella sean modificadas, por ejemplo, que un:

Código PHP:
<img src="imagen.jpg" width="207" height="108" border "0"
sea sustituido por:

Código PHP:
<img src="http://www.miweb.com/mostrar_img.php?img=imagen.jpg" border "0"
¿Se puede hacer? ¿cómo?

Muchísimas gracias!!

Última edición por dolarsrg; 21/10/2004 a las 11:52
  #2 (permalink)  
Antiguo 21/10/2004, 11:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para ese tipo de estructuras complejas .. lo que necesitas son expresiones regulares.

Las expresiones regulares no son própias de PHP .. pero PHP te permite usarlas (te lo comento para que no busques "expresiones regulares" en manuales de PHP ..)

Concretamente puedes ir mirando en temas como:
ergi_replace()
www.php.net/eregi_replace

Un saludo,
  #3 (permalink)  
Antiguo 21/10/2004, 11:54
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchísimas gracias Cluster.

Pero por lo que he pidido entender, el ergi_replace me modifica todos los caracteres de un tipo por otros, como podría simplemente eliminar los width="????" height="????" sin conocer los caracteres que tienen entre comillas???

Modificar un src=" por src="http://www....." parece más sencillo, pero al desconocer lo que tienen entre comillas esos dos parámetros me hago un lío :S

Muchas gracias por tu ayuda Cluster!
  #4 (permalink)  
Antiguo 21/10/2004, 12:02
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
Y otra cosa, como hacen eso???

Código PHP:
function cleanString($wild) {
   return 
ereg_replace("[^[:alnum:]+]","",$wild);
}
                                                                               
echo 
cleanString("@#$&*$@#H~e'{}l{}l<o\{}"); // outputs: Hello 
Si en el ereg_replace("[^[:alnum:]+]" no están la @, ni #, ni & ni ninguno de ellos, como es que los ha sustituido por ""???

Gracias de nuevo...
  #5 (permalink)  
Antiguo 21/10/2004, 12:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No son mi fuerte las expresiones regulares .. como mucho te puedo recomendar un manual al respecto:

http://www.ignside.net/man/php/regex.php

Con respecto a esto:
Cita:
Si en el ereg_replace("[^[:alnum:]+]" no están la @, ni #, ni & ni ninguno de ellos, como es que los ha sustituido por ""???
todos esos "códigos" que ves como ^ .. el [:alnum:] .. o el + son parte del "lenguaje" própio de expresiones regulares donde se pretende buscar un "patron" de conincidencia para hacer algo con el .. en el caso de usar eregi_replace() sería para "cambiar" lo que se encuentre (que cumpla ese patrón) por otra cosa .. pero también se puede "extraer" datos (de una cadena) que cumpla cierto patrón .. o sólo ver que se cumpla el nombrado "patrón".

El "patrón" lo vas componiendo con esos "códigos" que significan cosas (cosas que veras detalladas en el tutorial que te dejo el link).

Un saludo,
  #6 (permalink)  
Antiguo 22/10/2004, 02:46
 
Fecha de Ingreso: julio-2003
Mensajes: 209
Antigüedad: 20 años, 9 meses
Puntos: 0
¡¡Muchísimas gracias por el manual!!

Creo que me vendrá genial, y no sólo ese apartado, por lo visto es más completo que el que me estudié de desarrolloweb!!! ^_^

Un saludo, y hasta la próxima.
  #7 (permalink)  
Antiguo 22/10/2004, 03:18
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Cita:
Iniciado por dolarsrg
Y otra cosa, como hacen eso???

Código PHP:
function cleanString($wild) {
   return 
ereg_replace("[^[:alnum:]+]","",$wild);
}
                                                                               
echo 
cleanString("@#$&*$@#H~e'{}l{}l<o\{}"); // outputs: Hello 
Si en el ereg_replace("[^[:alnum:]+]" no están la @, ni #, ni & ni ninguno de ellos, como es que los ha sustituido por ""???

Gracias de nuevo...
[:alnum:] representa a un caracter alfanumérico cualquiera.... como tiene el ^ delante (que es como una negación), representa a cualquier caracter que no sea alfanumérico (como la @, #, etc).
El + al final indica que puede estar una o más veces.
O sea que cualquier caracter no alfanumérico que aparezca al menos una vez, será sustituido por una cadena vacía.
Esto lo puse por si alguna otra persona tuviera la misma duda. Porque al parecer dolarsrg ya se quitó las dudas con el pequeño manual (que yo también recomiendo, por cierto).

Saludos
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:20.