1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| <?php
function format_urls($s){
return preg_replace(
"/(\A|[^=\]'\"a-zA-Z0-9])((http|ftp|https|ftps|irc):\/\/[^<>\s]+)/i", "\\1<a href=\\2 target=_blank>\\2</a>", $s);
}
function interpreter_pre($s) {
$s = "<pre class=" . $s[1] . " style=\"margin:0; padding:0\">" . $s[2] . "</pre>";
$s = str_replace("<br />", "\n" , $s);
return $s;
}
function format_comment($text) {
global $site_config, $smilies, $info_off;
$s = $text;
$s = format_urls($s);
$s = preg_replace("/\[\*\]/i", "<li>", $s); //[*]Liste à puce
$s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/i", "<b>$1</b>", $s); // [b]Gras[/b]
$s = preg_replace("/\[i\]((\s|.)+?)\[\/i\]/i", "<i>$1</i>", $s); // [i]Italique[/i]
$s = preg_replace("/\[u\]((\s|.)+?)\[\/u\]/i", "<u>$1</u>", $s); // [u]Souligner[/u]
$s = preg_replace("/\[s\]((\s|.)+?)\[\/s\]/i", "<label style=\"text-decoration:line-through;\">$1</label>", $s); // [s]Barré[/s]
$s = preg_replace("/\[size=([1-7])\]((\s|.)+?)\[\/size\]/i", "<font size=\"$1\">$2</font>", $s); // [size=4]Texte[/size]
$s = preg_replace("/\[font=([a-zA-Z ,]+)\]((\s|.)+?)\[\/font\]/i", "<font face=\"$1\">$2</font>", $s); // [font=Arial]Texte[/font]
$s = preg_replace("/\[center\]((\s|.)+?)\[\/center\]/i","<div style=\"text-align:center\">$1</div>", $s); //[center]text[/center]
$s = preg_replace("/\[align=([a-zA-Z]+)\]((\s|.)+?)\[\/align\]/i","<div style=\"text-align:$1\">$2</div>", $s); //[align=(center|left|right|justify)]text[/align]
// text en couleur [color=Couleur]x[/color] ET [color=#ffcc99]x[/color]
$s = preg_replace("/\[color=([a-zA-Z]+)\]((\s|.)+?)\[\/color\]/i", "<font color=\"$1\">$2</font>", $s);
$s = preg_replace("/\[color=(#[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])\]((\s|.)+?)\[\/color\]/i", "<font color=\"$1\">$2</font>", $s);
// Les liens [url=Lien]Texte[/url] ET [url]Lien[/url]
$s = preg_replace("/\[url=((http|ftp|https|ftps|irc):\/\/[^<>\s]+?)\]((\s|.)+?)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$3</a>", $s);
$s = preg_replace("/\[url\]((http|ftp|https|ftps|irc):\/\/[^<>\s]+?)\[\/url\]/i", "<a href=\"$1\" target=\"_blank\">$1</a>", $s);
// Linebreaks
$s = str_replace("\n", "<br />", $s);
//$s = preg_replace_callback("/\[cd=([a-zA-Z]+)\]((\s|.)+?)\[\/cd\]/i", "<pre class=$1 style=\"margin:0; padding:0\">$2</pre>", $s); // [cd=texte]blabla[/cd]
$s = preg_replace_callback("/\[cd=([a-zA-Z]+)\]((\s|.)+?)\[\/cd\]/i", "interpreter_pre", $s); // [cd=texte]blabla[/cd]
// Maintain spacing
$s = str_replace(" ", " ", $s);
return $s;
}
?>
<form method="post" action="?">
<textarea name="test" cols="60" rows="10"><?php print(isset($_POST["test"]) ? htmlspecialchars($_POST["test"]) : ""); ?></textarea>
<input type="submit" value="Premier test">
</form>
<?php
if (isset($_POST["test"]))
print("<p><b>Interprétation des balises :</b></b><hr>" . format_comment(htmlspecialchars($_POST["test"])) . "<hr></p>\n");
?> |
Partager