Foros del Web » Programando para Internet » PHP »

Problema con expresiones regulares

Estas en el tema de Problema con expresiones regulares en el foro de PHP en Foros del Web. Tengo un problema con expresiones regulares el cual no puedo resolver y es bastante complicado... haber si alguien me puede ayudar Paso a comentar. tengo ...
  #1 (permalink)  
Antiguo 22/11/2011, 04:39
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Pregunta Problema con expresiones regulares

Tengo un problema con expresiones regulares el cual no puedo resolver y es bastante complicado... haber si alguien me puede ayudar

Paso a comentar. tengo este pedazo de código html


------
Este es mi texto sin sentido Este es mi texto sin sentido
Este es mi texto sin sentido
Este es mi texto sin sentido

<img class="aligncenter" title="titulo de la imagen" src="http://dominio.com/imagen.jpg" alt="Etiqueta alt" width="600" height="450" />

Este es mi texto sin sentido
Este es mi texto sin sentido

<img class="aligncenter" title="titulo de la imagen" src="http://dominio.com/imagen2.jpg" alt="Etiqueta alt" width="600" height="450" />

-------------------

bien ahora el tema es que necesito identificar donde hay una imagen... (<img />) y necesito poner debajo de la imagen un link a otra pagina (link.php) pero pasando un parámetro get con la url de la imagen mostrada... (link.php?img= http://dominio.com/imagen2.jpg)

Osea tendria que extraer directamente todo el codigo <img etc etc etc... /> procesar este quitando la ruta de la imagen e ingresar nuevamente lo extraído pero con un agregado seguido de /> </br> <a href=" link.php?img= http://dominio.com/imagen2.jpg "> Link </a>

Alguien sabe darme una mano con esto?
  #2 (permalink)  
Antiguo 22/11/2011, 04:44
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Problema con expresiones regulares

¿Podrías mostrar el código que ya has escrito?
  #3 (permalink)  
Antiguo 22/11/2011, 05:03
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

Si claro.

Pruebalo funciona hasta ahi, pero no se como seguir...


<?php

// El codigo a prosesar
$html='
Este es mi texto sin sentido Este es mi texto sin sentido
Este es mi texto sin sentido
Este es mi texto sin sentido

<img class="aligncenter" title="titulo de la imagen" src="http://dominio.com/imagen.jpg" alt="Etiqueta alt" width="600" height="450" />

Este es mi texto sin sentido
Este es mi texto sin sentido

<img class="aligncenter" title="titulo de la imagen" src="http://dominio.com/imagen2.jpg" alt="Etiqueta alt" width="600" height="450" />

';


// Patron 1 para extraer todo lo que hay dentro de las etiquetas img
$parser='|\<img(.*?)\>|is';

if(preg_match($parser, $html, $cod))
{
$html2=$html2.$cod[1];
}



// Patron para extraer todo lo que hay dentro de src
$parser='|\ src="(.*?)" |is';


if(preg_match($parser, $html2, $cod2))
{
$url=$url.$cod2[1];
}

// muestro la url de la imagen
echo $url;

?>
  #4 (permalink)  
Antiguo 22/11/2011, 10:05
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

Nadie me sabe dar una mano?
  #5 (permalink)  
Antiguo 22/11/2011, 17:56
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 13 años, 1 mes
Puntos: 18
Respuesta: Problema con expresiones regulares

Código PHP:
Ver original
  1. $dom = new DOMDocument();
  2. $dom->loadHTML($html);
  3. $images=$dom->getElementsByTagName("img");
  4.  
  5.  
  6. foreach($images as $image) {
  7.     $src = $image->getAttribute("src");
  8.     $link = $dom->createElement("a", "Titulo del enlace");
  9.     $link->setAttribute("href", "www.link.com?$src");
  10.     $image->parentNode->insertBefore($link,$image);
  11.     $element = $dom->createElement("br");
  12.     $image->parentNode->insertBefore($element,$link);
  13.     $element = $dom->createElement("br");
  14.     $image->parentNode->insertBefore($element,$image);
  15.    
  16. }
  17. echo $dom->saveHTML();

mm una posible solucion
__________________
Que de Cosas - Tienda En linea México

La Batalla Por tu cuerpo - Dietas|Rutinas|Entrenamientos|Salud
  #6 (permalink)  
Antiguo 22/11/2011, 19:36
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

Mi dios santo... eres un dios. ostia!

Tengo conocimientos en php pero no tengo la menor idea de lo que hacer aqui....

mi dios santo... que estas haciendo? coméntame asi me pongo a buscar de que se trata eso...


Si... anda perfecto esto... ahora el tema que lo quiero personalizar un poco pero estoy un poco liado... coméntame como puedo hacer mas o menos para personalizarlo, poner el link abajo de la imagen en ves de arriba y poner el link entre divs para darle algo de formato...

yo ire viendo si puedo ir haciendo algo de lo comentado.
  #7 (permalink)  
Antiguo 23/11/2011, 09:23
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

Hola Todos, bueno he puesto modificado un poco y el link lo he podido poner debajo de la imagen... ahora el tema es que al link lo quiero poner entre medio de un div... osea asi. <div id="nombre_id"><a href="etc...ext...">Link</a> pero no puedo lograrlo...

miren esto he echo y funciona

Código PHP:

$dom 
= new DOMDocument();
$dom->loadHTML($html);
$images=$dom->getElementsByTagName("img");

foreach(
$images as $image) {
        
$src $image->getAttribute("src");
        
$link $dom->createElement("a""Crea tu catel");
        
$link->setAttribute("href""link.php?=$src");
        
$link->setAttribute("class""nombre_class");        
        
$element $dom->createElement("div");        
        
$element->setAttribute("id""nom_class");
        
$image->parentNode->insertBefore($link,$image);
        
$image->parentNode->insertBefore($image,$link);
        
$image->parentNode->insertBefore($element,$image);
        
    }
    echo 
$dom->saveHTML(); 
  #8 (permalink)  
Antiguo 23/11/2011, 18:08
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

no se puede hacer lo que yo quiero hacer?... lo veo medio limitado a esto de DOM

Estoy confundido?
  #9 (permalink)  
Antiguo 24/11/2011, 12:59
Avatar de soypepepompin  
Fecha de Ingreso: noviembre-2010
Mensajes: 106
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Problema con expresiones regulares

Ahh ya va queriendo jejej


el truco es usar appendChild($link)

Etiquetas: expresiones, html, regulares
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 08:32.