Originalmente inviato da
Inverno
sono sbagliate le regex, manca il carattere di inizio pattern che nel tuo caso dovrebbe essere lo slash.
Codice PHP:
$replace = array(
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[img]$1[/img]',
'[url=$1]$2[/url]'
);
$search = array(
'#<strong>(.*?)</strong>#is',
'#<em>(.*?)</em>#is',
'#<u>(.*?)</u>#is',
'#<img src="(.*?)" />#is',
'#<a href="(.*?)">(.*?)</a>#is'
);
nota: ho usato il cancelletto per evitare problemi coi tag html
p.s. sei sicuro che vada bene così? questa funzione trasforma da HTML a BBCODE, di solito è il contrario
Perfetto funziona quasi tutto
Si si l'operazione la devo eseguire al contrario, lo so che è strano ma mi serve per far modificare i messaggi che sono in formato HTML...
C'è un ultimissimo problema (e poi se Dio vuole, con il bbcode ho finito)...
Sarò stupido io... Ma non riesco a capire come mai l'ultima stringa che mi deve trovare per sostituirla con il relativo bbcode non la trova e quindi mi lascia il tutto in html...
Codice PHP:
$replace = array(
'[b]$1[/b]',
'[i]$1[/i]',
'[u]$1[/u]',
'[img]$1[/img]',
'[url=$1]$2[/url]',
'[quote]$1[/quote]'
);
$search = array(
'#<strong>(.*?)</strong>#is',
'#<em>(.*?)</em>#is',
'#<u>(.*?)</u>#is',
'#<img src="(.*?)" />#is',
'#<a href="(.*?)">(.*?)</a>#is',
'#<table border="0"><tr><td><font face="arial" size="1">QUOTE</font></td></tr><tr><td bgcolor="#6699CC"><font face="arial" size="1">(.*?)</font></td></tr></table>#is'
);
Sto parlando del codice
Codice HTML:
<table border="0"><tr><td><font face="arial" size="1">QUOTE</font></td></tr><tr><td bgcolor="#6699CC"><font face="arial" size="1">(.*?)</font></td></tr></table>
Non capisco come mai, ma anziché modificarla in
Codice HTML:
[quote]messaggio[/quote]
mela lascia formattata in html...