- Home
- Categorie
- Coding e Sistemistica
- Coding
- Tag <br />
-
Ora che mi ci fai pensare... hai ragione... per qualche ragione ho pensato di far inserire tag html, convertirli in bbcode e poi convertire il bbcode in html... fare php per lunghi periodi fa MALE
UPDATE: il mio codice in un file esterno richiamato poi con require_once:
[php]
<?phpfunction bbcode_format($var) {
$search = array(
'',
'',
'',
'',
'',
'\n',
'[:)]',
'[O:)]',
'[:@]',
'[:S]',
'[:(]',
'[£:)]',
'[:$]',
'[:O]',
'[:(]',
'[8)]',
'[:D]',
'[:P]',
'',
'[;)]'
);
$replace = array(
'<strong>(.?)</strong>',
'<em>(.?)</em>',
'<u>(.?)</u>',
'<img src="(.?)" />',
'<a href="(.*?)">$1</a>',
'<br />',
'<img src="img/smile/smile1.gif">',
'<img src="img/smile/smile2.gif">',
'<img src="img/smile/smile3.gif">',
'<img src="img/smile/smile4.gif">',
'<img src="img/smile/smile5.gif">',
'<img src="img/smile/smile6.gif">',
'<img src="img/smile/smile7.gif">',
'<img src="img/smile/smile8.gif">',
'<img src="img/smile/smile9.gif">',
'<img src="img/smile/smile10.gif">',
'<img src="img/smile/smile11.gif">',
'<img src="img/smile/smile12.gif">',
'<img src="img/smile/smile13.gif">',
'<img src="img/smile/smile14.gif">'
);
$var = preg_replace ($search, $replace, $var);
return $var;
}?>
[/php]L'errore:
Warning: preg_replace() [function.preg-replace]: Unknown modifier '[' in C:\xampp\htdocs\nfs\bbc.php on line **48
**
-
Prova cosi:
[php]
<?phpfunction bbcode_format($var) {
$search = array(
'/[b](.?)[/b]/is',
'/[i](.?)[/i]/is',
'/[u](.?)[/u]/is',
'/[img](.?)[/img]/is',
'/[url](.?)[/url]/is',
'',
'\n',
'[:)]',
'[O:)]',
'[:@]',
'[:S]',
'[:(]',
'[£:)]',
'[:$]',
'[:O]',
'[:(]',
'[8)]',
'[:D]',
'[:P]',
'',
'[;)]'
);
$replace = array(
'<strong>(.?)</strong>',
'<em>(.?)</em>',
'<u>(.?)</u>',
'<img src="(.?)" />',
'<a href="(.?)">$1</a>',
'<br />',
'<img src="img/smile/smile1.gif">',
'<img src="img/smile/smile2.gif">',
'<img src="img/smile/smile3.gif">',
'<img src="img/smile/smile4.gif">',
'<img src="img/smile/smile5.gif">',
'<img src="img/smile/smile6.gif">',
'<img src="img/smile/smile7.gif">',
'<img src="img/smile/smile8.gif">',
'<img src="img/smile/smile9.gif">',
'<img src="img/smile/smile10.gif">',
'<img src="img/smile/smile11.gif">',
'<img src="img/smile/smile12.gif">',
'<img src="img/smile/smile13.gif">',
'<img src="img/smile/smile14.gif">'
);
$var = preg_replace ($search, $replace, $var);
return $var;
}?>
[/php]
-
Ho provato io e da errore, la soluzione definitiva dovrebbe essere questa:
[php]
function bbcode_format($var) {
$search = array(
"/[b](.?)[/b]/is",
"/[i](.?)[/i]/is",
"/[u](.?)[/u]/is",
"/[img](.?)[/img]/is",
"/[url](.?)[/url]/is",
'/\n/',
'/[:)]/',
'/[O:)]/',
'/[:@]/',
'/[:S]/',
'/[:(]/',
'/[£:)]/',
'/[:$]/',
'/[:O]/',
'/[:(]/',
'/[8)]/',
'/[:D]/',
'/[:P]/',
'/*/',
'/[;)]/'
);
$replace = array(
'<strong>$1</strong>',
"<em>$1</em>",
"<u>$1</u>",
'<img src="$1" />',
'<a href="$1">$1</a>',
'<br />',
'<img src="img/smile/smile1.gif">',
'<img src="img/smile/smile2.gif">',
'<img src="img/smile/smile3.gif">',
'<img src="img/smile/smile4.gif">',
'<img src="img/smile/smile5.gif">',
'<img src="img/smile/smile6.gif">',
'<img src="img/smile/smile7.gif">',
'<img src="img/smile/smile8.gif">',
'<img src="img/smile/smile9.gif">',
'<img src="img/smile/smile10.gif">',
'<img src="img/smile/smile11.gif">',
'<img src="img/smile/smile12.gif">',
'<img src="img/smile/smile13.gif">',
'<img src="img/smile/smile14.gif">'
);
$var = preg_replace($search, $replace, $var);
return $var;
}
[/php]
-
Grazie thedarkita
la parte relativa alla formattazzione del testo funziona. Però ho dei problemi con gli smilies
Ad esempio basta che io nel testo inserisca una 'S', che lo interpreta come [:S] e lo traduca nella corrispondente immagine.
Ad esempio mettendo [:D]
Il risultato è l'equivalente di:
[:):D]
Possibili soluzioni?
maxPS: Credo (basato esclusivamente su un'opinione personale) che allo script basti UN elemento in comune (eg: in [:S] basta che trovi una 'S' perchè converta l'immagine). Cosa ne pensi?
-
A via di mettere / e \ sto impazzendo.
Un paio li ho sistemati, gli altri sto impazzendo... Fai prima a fare un str_replace per le faccine invece che fare le espressioni regolari inutilmente secondo me.[php]
function bbcode_format($var) {
$search = array(
"/[b](.?)[/b]/is",
"/[i](.?)[/i]/is",
"/[u](.?)[/u]/is",
"/[img](.?)[/img]/is",
"/[url](.?)[/url]/is",
'/\n/',
"/[:)]/",
"/[\O:)]/",
"/[:@]/",
"/[:S]/",
"/[:]/",
"/[\£:)]/",
"/[:$]/",
"/[:O]/",
"/[;)]/",
"/[:(]/"
);
$replace = array(
'<strong>$1</strong>',
"<em>$1</em>",
"<u>$1</u>",
'<img src="$1" />',
'<a href="$1">$1</a>',
'<br />',
'<img src="img/smile/smile1.gif">',
'<img src="img/smile/smile2.gif">',
'<img src="img/smile/smile3.gif">',
'<img src="img/smile/smile4.gif">',
'<img src="img/smile/smile5.gif">',
'<img src="img/smile/smile6.gif">',
'<img src="img/smile/smile7.gif">',
'<img src="img/smile/smile8.gif">',
'<img src="img/smile/smile9.gif">',
'<img src="img/smile/smile10.gif">'
);
$var = preg_replace($search, $replace, $var);
return $var;
}
[/php]
-
Grazie mille
-
Vedi che mancano 4 faccine però...
Perchè una non sono riuscito a farla andare.
Ti consiglio comunque di fare un str_replace per le faccine, che sicuramente è molto più comodo.
-
Si ho usato uno str_replace e funziona
Ho ancora un dubbio... in pratica avrei bisogno che continuasse la ricerca di bbcode da rimpiazzare anche all'interno degli stessi... esempio:
[table] [table] [/table] [/table] ```dove il codice '[table]' è (per esempio):
<table border="1">
<tr>
<td></td>
</tr>
</table><table border="1">
<tr>
<td>
[table][/table]
</td>
</tr>
</table>
[/table]mentre io vorrei che fosse
<table border="1">
<tr>
<td><table border="1">
<tr>
<td>
</td>
</tr>
</table></td>
</tr>
</table>
-
Il problema è che considera sempre la prima apertura e la prima chiusura che trova...
Non mi viene niente in mente...
-
Il codice in questione:
[php]
"/[premsg](.*?)[/premsg]/is"
[/php][php]
'<table border="1" STYLE="border-style:none; font-size:12px" width="700"><tr bgcolor="FFCC99"><td>$1</td></tr></table>'
[/php]eppure ci sono numerosi forum e cms che fanno uso di questo sistema di "tabella in tabella" per segnalare (ad esempio) quote di quote... mmh...PS:
Esempio di codice risultante da uso di [premsg] testo [premsg] altro testo[/premsg][/premsg]:
<br /><table border="1" STYLE="border-style:none; font-size:12px" width="700"><tr bgcolor="FFCC99"><td> <br />____________________ <br />max0005 wrote: <br /> <br />sdfdddssd <br /> <br />[premsg] <br />____________________ <br />max0005 wrote: <br /> <br />gaaamesgaaames</td></tr></table>[/premsg]
-
Cosi dovrebbe andare:
[php]
<?phpfunction bbcode_format($var) {
$search = array(
"/[b](.?)[/b]/is",
"/[i](.?)[/i]/is",
"/[u](.?)[/u]/is",
"/[img](.?)[/img]/is",
"/[url](.*?)[/url]/is",
'/\n/'
);
$replace = array(
'<strong>$1</strong>',
"<em>$1</em>",
"<u>$1</u>",
'<img src="$1" />',
'<a href="$1">$1</a>',
'<br />'
);while(preg_match("#[table](.*?)[\/table]#is", $var)!=0) $var = preg_replace("#[table](.*?)[\/table]#is", '<table>$1</table>', $var); $var = preg_replace($search, $replace, $var); return $var;
}
?>
[/php]
-
Funziona!!!
Non so davvero come ringraziarti ci avrei passato la notte!
-