renglon - Cómo convertir múltiples etiquetas<br/> a una sola etiqueta<br/> en php
pasar parrafo html (9)
La legibilidad mejorada, más corta, produce resultados correctos independientemente de los atributos:
preg_replace(''{(<br[^>]*>/s*)+}'', ''<br/>'', $input);
Quería convertir
<br/>
<br/>
<br/>
<br/>
<br/>
dentro
<br/>
Probablemente quiera usar una expresión regular. No he probado lo siguiente, pero creo que es correcto.
$text = preg_replace( "/(<br/s?//?>)+/i","<br />", $text );
Puedes hacer esto con una expresión regular:
preg_replace("/(<br/s*//?>/s*)+/", "<br/>", $input);
Si pasa el código fuente HTML, esto devolverá una cadena con un único <br/> reemplazando cada ejecución de ellos.
Usa una expresión regular para <br/>
una o más veces, luego usa preg_replace (o similar) para reemplazarlo con <br/>
, como la respuesta de levik.
sin preg_replace, pero funciona solo en PHP 5.0.0+
$a = ''<br /><br /><br /><br /><br />'';
while(($a = str_ireplace(''<br /><br />'', ''<br />'', $a, $count)) && $count > 0)
{}
// $a becomes ''<br />''
Gracias a todos .. Usado Jakemcgraw''s (+1) versión
Acaba de agregar la opción insensible a mayúsculas / minúsculas ..
{(<br[^>]*>/s*)+}i
Una gran herramienta para probar esas expresiones regulares es:
Un enfoque rápido y no de expresión regular:
while(strstr($input, "<br/><br/>"))
{
$input = str_replace("<br/><br/>", "<br/>", $input);
}
El usuario puede ingresar muchas variantes
<br>
<br/>
< br />
<br >
<BR>
<BR>< br>
...y más.
Así que creo que será mejor después
$str = preg_replace(''/(<[^>]*?br[^>]*?>/s*){2,}/i'', ''<br>'', $str);
El mío es casi exactamente el mismo que el de Levik (+1), solo explica algunos formatos diferentes de br:
preg_replace(''/(<br[^>]*>/s*){2,}/'', ''<br/>'', $sInput);