Cita:
Iniciado por tuadmin ...
Código PHP:
Ver original<?php
$lineas = split("<font",$html); foreach($lineas as &$linea){
if(stripos($linea,'</font') >0)){ //todo correcto tiene cierre del TAG
}else{//no tiene cierre del TAG y le agregamos uno por que la siguiente linea viene otro FONT
$lineas .= '</font>'
}
}
//y volvemos a armar de nuevo el string
...
gracias por la ayuda
tuadmin siguiendo tu consejo, acondiciono el
wysiwyg que he creado utilizando
document.execCommand para que séa XHTML válido, pues con JS he removido la parte W3C que se agrega al interactuar con el
wysiwyg:
Código:
document.getElementById('elhtml').value = Q.replace(/ xmlns="http:\/\/www.w3.org\/1999\/xhtml" /g, ' ');
y ahora con PHP lo preparo para ser XHTML:
Código PHP:
if(!empty($_POST['elhtml'])){
$elhtml = $_POST['elhtml'];
echo 'HTML original:<textarea style="width:100%;height:8%;font-size:1.2em;">'.$elhtml.'</textarea>';
// divido el HTML recibido en líneas:
$elhtml = preg_replace('/<font .*?>/', "\n$0", $_POST['elhtml']);
echo 'HTML con saltos de línea:<textarea style="width:100%;height:13%;font-size:1.2em;">'.$elhtml.'</textarea>';
while(preg_match('@(<br />\s*|</font>\s*)$@s', $elhtml)){echo 1;
$elhtml = preg_replace('@(<br />\s*|</font>\s*)$@s', '', $elhtml);
}
echo 'HTML sin tags al final:<textarea style="width:100%;height:33%;font-size:1em;">'.print_r($elhtml, 1).'</textarea>';
echo 'HTML procesado:<textarea style="width:100%;height:100%;font-size:1em;">';
$elhtml = explode("\n", $elhtml);
$HTML = '';
foreach($elhtml AS $n => $L){
if($n > 0 && !preg_match('@(</font>)$@', $L))$L = $L.'</font>';
$HTML .= $L."\n";
}
echo $HTML;
}
no sé por qué no se créa un XHTML válido de manera nativa, sin embargo con tu explode espero poderlo manejar.
Gracias