Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/03/2008, 06:04
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Expresión regular simple

Estás usando mal la expresión, en tanto que no estás considerando que, por defecto, la expresión coincide con la mayor cadena posible (lo que se llama greedy match).
Para que esto no suceda, tenés que usar el modificador U al final del patrón:
http://www.php.net/pcre
http://www.php.net/manual/es/referen...ern.syntax.php
http://www.php.net/manual/es/referen....modifiers.php

Así que, el patrón debería ser

Código:
preg_replace('|(<img.*>)|U', "<p>$1</p>", $contenido);
O, también podés usar el modificador ? para indicarle al cuantificador * que debe coincidir con la menor cadena posible:

Código:
preg_replace('|(<img.*?>)|', "<p>$1</p>", $contenido);

Saludos.