elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con preg_match_all()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con preg_match_all()  (Leído 3,076 veces)
Feedeex

Desconectado Desconectado

Mensajes: 173


Ver Perfil
Problema con preg_match_all()
« en: 21 Agosto 2011, 21:58 pm »

Yo tengo, por ejemplo una foto:

Citar
Código:
[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:

Código:
<?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:

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



En línea

EFEX


Desconectado Desconectado

Mensajes: 1.171


"Dinero Facil"


Ver Perfil WWW
Re: Problema con preg_match_all()
« Respuesta #1 en: 21 Agosto 2011, 22:14 pm »

Código
  1. preg_match_all('/\[img\](.*?)\[\/img\]/i', $cadena, $data)

 ;)


« Última modificación: 21 Agosto 2011, 22:22 pm por EFEX » En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Problema con preg_match_all()
« Respuesta #2 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
  1. <?php
  2. preg_match_all('/\[img\]([^\|]+)\|(\d+)\|(\d+)/i', '[img]http://www.google.com.ar/image.jpg|500|500[/img]', $result, PREG_SET_ORDER);
  3.  
  4. print_r($result);
  5. ?>

Salida:
Código:
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
        )

)
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema BlueZScanner y problema de conexión
Hacking Mobile
Kasswed 3 6,674 Último mensaje 6 Mayo 2006, 22:04 pm
por Gospel
[preg_match_all] no se que hace esta linea
PHP
Frost 7 3,971 Último mensaje 7 Enero 2012, 05:45 am
por ~ Yoya ~
Acceder al parametro array de preg_match_all
PHP
franfis 4 2,407 Último mensaje 25 Marzo 2014, 08:38 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines