allora ho fatto in questo modo e sembra funzionare....
Codice PHP:
//**** inserisce il tag mancante****//
function count_t($tag, $text) {
$count = 0;
for($i=0;$i<=strlen($text) - strlen($tag);$i++) {
$s = substr($text, $i, strlen($tag));
if($s == $tag)
$count++;
}
return $count;
}
//array di possibili TAG presenti all'interno della news per esempio [b]Nome[/b], se manca la chiusura del TAG questa funzione ne aggiunge una
$tag = array( "[b];[/b]","[i];[/i]","<a>;</a>","
;</p>","<h1>;</h1>","<h2>;</h2>","<h3>;</h3>","<h4>;</h4>","<h5>;</h5>","<h6>;</h6>",
"[list=1];[/list]","[*];","<ul>;[/list]" /* tag_aperto;tag_chiuso */);
//**** inserisce il tag mancante****//
$my_text = "[b]23 maggio alle ore 12[/b],
presso la sala delle conferenze in ([b],Via le mani dal naso,45[/b]),
Saranno presenti, tra gli altri, [b] Antonio Cassano <";
//inverto la stringa
$my_text = strrev($my_text);
//prendo tutto il resto dopo la prima occorrenza che è lo spazio ' '
$my_text = strstr($my_text,' ');
//rigiro la stringa per visualizzarla in modo corretto
$my_text = strrev($my_text);
//aggiungo il tag di chiusura mancante
foreach($tag as $t) {
$g = explode(";", $t);
$diff = count_t($g[0], $my_text) - count_t($g[1], $my_text);
if($diff >= 1) {
for($j = 0;$j < $diff;$j++)
$my_text .= $g[1];
}
}
//visualizzo il testo definitivo e corretto
echo $my_text;
Spero possa essere utile a qualcuno..
Se può essere ottimizzato fatemi sapere per favore.
Buona giornata :|