Comunidad de diseño web y desarrollo en internet online

Tengo problemas con reg_split, para separar una cadena

Citar            
MensajeEscrito el 17 Feb 2010 03:52 pm
Hola

tengo una cadena separada cada parte por la etiqueta <br \>, quiero crear un array donde el elemento al que se le hace un split es la mencionada etiqueta.
Luego añado unas tablas antes y después para que el texto me salga como quiero, pero reg_split no me funciona bien con <br \>, pues no me sustrae esta etiqueta:

pongo el código:

Código PHP :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
<?php
function setBoletin($cadena){

$antes = '<table width="100%"  border="3" cellspacing="0" cellpadding="0"><tr><td width="24%" valign="top"><div align="center"><img src="images/foto1.jpg" width="127" height="99"></div></td>
<td width="76%" valign="top"><table width="91%"  border="0" cellspacing="0" cellpadding="0"><tr><td valign="top" class="miclase"><div align="left">';
$despues = '</div></td></tr></table></td></tr><tr><td colspan="2"><div align="center"><img src="images/foto2.jpg" width="100%" height="7"></div></td></tr></table>';
if(ereg('<br />',$cadena)){

   //$rdo = preg_split("<br />",$cadena);
   //$rdo = preg_split('/<[^>]*[^\/]>/i', $cadena, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
   $rdo = preg_split('[<br \>]', $cadena, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
   
   $output = '';
   for($i=0;$i<count($rdo);$i++){
      //$output .= $antes . $rdo[$i] . $despues;   
      $output .= $rdo[$i];
   }
   return $output;
   
}else{
   return $cadena;
}
} 
$cadena = '{hola}<br \>{¿Como estas?}<br \>{Yo bien}<br \>';

echo(setBoletin($cadena));

?>
<body>
</body>
</html>


Cómo veis el resultado de la función es:
{hola}
{¿Cómo estas?}
{Yo bien}

el código fuente, sería {hola]<br \>, etc...
pero quiero que sea, {hola}{¿Cómo estas?}{Yo bien} , es decir sin la etiqueta <br \>

Esto sería el primer paso, luego si veis la línea comentada : $output .= $antes . $rdo[$i] . $despues; , hay tampoco sale la tabla, tal y como quiero y es el proposito. He intentado las opciones comentadas y alguna más pero no termina de salirme.

Saludos

Por Dav1d

14 de clabLevel



 

firefox
Citar            
MensajeEscrito el 17 Feb 2010 06:28 pm
Pues si lo que quieres es eliminar la subcadena "<br \>" nada más hace falta hacer un

Código PHP :

$cadena = str_replace("<br \>","",$cadena);
y ya está.

Ahora bien, si quieres reemplazar la subcadena "<br \>" para encerrar lo que separa con el contenido de otra(s) variables entonces es tan simple como

Código PHP :

$cadena = $antes.str_replace("<br \>",$despues.$antes,$cadena).$despues;
y listo.


Por otro lado estás haciendo un echo fuera del body del HTML, por tanto nunca verás el resultado en el navegador.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.