Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Feedeex en 21 Agosto 2011, 21:58 PM

Título: Problema con preg_match_all()
Publicado por: Feedeex en 21 Agosto 2011, 21:58 PM
Yo tengo, por ejemplo una foto:

Citar[img]http://www.google.com.ar/image.jpg|500|500[/img]

y quiero que la salida sea:

Citar<img src="http://www.google.com.ar/image.jpg" width="500" heigth="500">

Entonces, con el siguiente código (porque estoy aprendiendo a usar preg_match_all), intento ver que me devuelve en el array $data:

<?php
$cadena 
"[img]http://www.google.com.ar/image.jpg|500|500[/img]";

if(
preg_match_all('/\[img\](.*?)\[/img\]\/i'$cadena$data)) {
  
print_r($data);
 }
?>


pero el problema es que me da ERROR:

CitarWarning: preg_match_all() [function.preg-match-all]: Unknown modifier 'a' in public_html/Pruebas/prueba.php on line 4

Título: Re: Problema con preg_match_all()
Publicado por: EFEX en 21 Agosto 2011, 22:14 PM
Código (php) [Seleccionar]
preg_match_all('/\[img\](.*?)\[\/img\]/i', $cadena, $data)

;)
Título: Re: Problema con preg_match_all()
Publicado por: ~ Yoya ~ en 21 Agosto 2011, 22:58 PM
Sip, el error es que tienes que escapar las barras, recuerdas que los delimitadores son / y /, que indican donde empiezan y donde terminan...

Aquí otra versión un poco mas mejorada...
Código (php) [Seleccionar]
<?php
preg_match_all
('/\[img\]([^\|]+)\|(\d+)\|(\d+)/i''[img]http://www.google.com.ar/image.jpg|500|500[/img]'$resultPREG_SET_ORDER);

print_r($result);
?>


Salida:
Array
(
    [0] => Array
        (
            [0] => [img]http://www.google.com.ar/image.jpg|500|500
            [1] => http://www.google.com.ar/image.jpg
            [2] => 500
            [3] => 500
        )

)