- Home
- Categorie
- Coding e Sistemistica
- Coding
- Tag <br />
-
M'ero perso l'UPDATE, max.
Grazie infinite Thedarkita, ottima risorsa, spostata in area idonea.
-
Ho provato a usare uno script simile a quello che tu mi hai indicato (nel senso che ho solo modificato/aggiunto tag :D) ma mi da questo errore:
Parse error: parse error in C:\xampp\htdocs\nfs\sendpm.php on line **44
**[php]
$pre_message = mysql_real_escape_string($_REQUEST["message"]);function bbcode_format($var) {
$search = array(
?/(.*?)/is?, //<-- riga 44
?/(.?)/is?,
?/(.?)/is?,
?//is?,
?/(.?)/is?,
?/(.?)/is?
);
$replace = array(
?<strong>$1</strong>?,
?<em>$1</em>?,
?<u>$1</u>?,
?<img src="$1" />?,
?<a href="$1">$1</a>?,
?<a href="$1">$2</a>?
);
$var = preg_replace ($search, $replace, $var);
return $var;
}$message = str_replace('\n', '', var);
[/php]
-
La funzione per i bbcode andrà utilizzata in visualizzazione, mi sembra di capire che tu l'abbia messa nel file che invia i dati al Db invece.
Ti conviene mettere la funzione in un file a parte e includerlo tramite require_once.Quando estrai i dati per visualizzarli farai semplicemente questo:
[php]$message=bbcode_format($message);[/php]A questo punto puoi anche inserire la variazione da \n a <br /> direttamente in quella funzione:
[php]function bbcode_format($var) {
$search = array(
'/(.*?)/is', //<-- riga 44
'/(.?)/is',
'/(.?)/is',
'//is',
'/(.*?)/is',
'\n'
);
$replace = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<br />'
);
$var = preg_replace ($search, $replace, $var);
return $var;
} [/php]Credo che così dovrebbe andare.P.S. ti ho tolto una delle modifiche dato che le hai rese identiche e quindi inutile duplicarle.
-
Ciao,
visto che sto usando il codice nel filme che mette i dati nel mysql ho invertito le due parti:[php]
$to = mysql_real_escape_string(strip_tags($_REQUEST["to"]));
$subject = mysql_real_escape_string(strip_tags($_REQUEST["subject"]));
$pre_message = mysql_real_escape_string($_REQUEST["message"]);function bbcode_format($var) {
$search = array(
'<strong>$1</strong>',
'<em>$1</em>',
'<u>$1</u>',
'<img src="$1" />',
'<a href="$1">$1</a>',
'<br />'
);
$replace = array(
'/(.*?)/is', //<-- riga 44
'/(.?)/is',
'/(.?)/is',
'//is',
'/(.*?)/is',
'\n'
);
$var = preg_replace ($search, $replace, $var); //<-- riga 59
return $var;
}$message_a = str_replace('\n', '', $pre_message);
$message_b=bbcode_format($message_a);
$message = strip_tags($message_b);
[/php]però mi da
Warning: preg_replace() [function.preg-replace]: Unknown modifier '$' in C:\xampp\htdocs\nfs\sendpm.php on line 59
-
Devi invertire pure $1 con (.*?).
Però che senso ha convertire l'html in bbcode? Dovresti convertirlo nuovamente per utilizzarli...
-
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!
-