Codice PHP:
$string = preg_replace("#\[B\](.*?)\[\/B\]#is", "[B]$1[/B]", $string);
MM.... non so guarda questa riga non funziona...
Se l'utente scrivesse nella textarea "pippo" allora ok, il tag apre e chiude ed è tutto apposto e il risultato è solo "pippo".
Invece se l'utente scrive "[B]pippo" allora il risultato è "pippo" e tutto il resto del suo post piu tutto il resto della mia pagina da quel punto in poi diventa tutto in grassetto.. Attualmente per evitare il problema uso:
Codice PHP:
$string = chiudi_tag_lasciati_aperti($string, "[B]", "[/B]");
$string = chiudi_tag_lasciati_aperti($string, "[I]", "[/I]");
$string = chiudi_tag_lasciati_aperti($string, "[U]", "[/U]");
function chiudi_tag_lasciati_aperti($string, $tag_aperto, $tag_chiuso) {
$corrisp_apertura = substr_count($string, $tag_aperto);
$corrisp_chiusura = substr_count($string, $tag_chiuso);
if ( $corrisp_apertura > $corrisp_chiusura ) {
$numero_chiusure = $corrisp_apertura - $corrisp_chiusura;
for ($x=1; $x <= $numero_chiusure; $x++) {
$string .= $tag_chiuso;
}
}
return $string;
}
Così funziona... Non riesco a fare funzionare invece quella espressione regolare non capisco dove sta l'errore...