| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- function bbDecode($string) {
- $find = array(
- "'\[b\](.*?)\[/b\]'is",
- "'\[u\](.*?)\[/u\]'is",
- "'\[i\](.*?)\[/i\]'is",
- "'\[s\](.*?)\[/s\]'is",
- "'\[code\](.*?)\[/code\]'is",
- "'\[quote\](.*?)\[/quote\]'is",
- "'\[quote=(.*?)\](.*?)\[/quote\]'is",
- "'\[span=(.*?)\](.*?)\[/span\]'i",
- "'\[div=(.*?)\](.*?)\[/div\]'is",
- "'\[h\](.*?)\[/h\]'i",
- "'\[url\](.*?)\[/url\]'i",
- "'\[url=(.*?)\](.*?)\[/url\]'i",
- "'\[video\](.*?)\[/video\]'i",
- "'\[video width=(.*?) height=(.*?)\](.*?)\[/video\]'i",
- "'\[img\](.*?)\[/img\]'i",
- "'\[img title=(.*?) rel=(.*?)\](.*?)\[/img\]'i",
- "'\[img title=(.*?)\](.*?)\[/img\]'i",
- );
- $replace = array(
- "<strong>\\1</strong>",
- "<u>\\1</u>",
- "<i>\\1</i>",
- "<del>\\1</del>",
- "<pre>\\1</pre>",
- "<q>\\1</q>",
- "<q><span class=\"cite\">\\1 a écrit</span><br />\\2</q>",
- "<span class=\"\\1\">\\2</span>",
- "<div class=\"\\1\">\\2</div>",
- "<b>\\1</b><br />",
- "<a href=\"\\1\">\\1</a>",
- "<a href=\"\\1\">\\2</a>",
- "<object width=\"480\" height=\"387\" class=\"center\"><param name=\"movie\" value=\"\\1\"></param><embed src=\"\\1\" type=\"application/x-shockwave-flash\" width=\"480\" height=\"387\"></embed></object>",
- "<object width=\"\\1\" height=\"\\2\" class=\"center\"><param name=\"movie\" value=\"\\3\"></param><embed src=\"\\3\" type=\"application/x-shockwave-flash\" width=\"\\1\" height=\"\\2\"></embed></object>",
- "<a href=\"\\1\" rel=\"prettyPhoto\"><img src=\"\\1\" alt=\"\" /></a>",
- "<img class=\"illustration\" src=\"\\3\" alt=\"\\1\" />",
- "<img src=\"\\2\" alt=\"\\1\" />",
- );
- $string = makeLinks(preg_replace ($find, $replace, $string));
- $string = nl2brPlus ($string);
- return $string;
- }
- // do nl2br except when in a <pre> tag
- function nl2brPlus($string) {
- $string = str_replace("\n", "<br />", $string);
- if(preg_match_all('/\<pre\>(.*?)\<\/pre\>/', $string, $match)){
- foreach($match as $a){
- foreach($a as $b){
- $string = str_replace('<pre>'.$b.'</pre>', "<pre>".str_replace("<br />", "", $b)."</pre>", $string);
- }
- }
- }
- return $string;
- }
- # Transform URL and e-mails into links
- function makeLinks($string) {
- $string = preg_replace_callback('/\s(http|https|ftp):(\/\/){0,1}([^\"\s]*)/i','splitUri',$string);
- return $string;
- }
- # Split links, require for makeLinks
- function splitUri($matches) {
- $uri = $matches[1].':'.$matches[2].$matches[3];
- $t = parse_url($uri);
- $link = $matches[3];
- if (!empty($t['scheme'])) {
- return ' <a href="'.$uri.'">'.$link.'</a>';
- } else {
- return $uri;
- }
- }
- // parse la description pour ajouter les liens sur les tags
- function parse_tags ($desc) {
- $desc_parse = preg_replace ('/#([\w\dÀÇÈÉÊËÎÏÔÙÚÛÜàáâçèéêëîïóùúûü]+)/i', '<a class="linktag" href="?addtag=\\1">\\1</a>', $desc);
- return $desc_parse;
- }
- function lazyimg($content) {
- return preg_replace(
- '/<img([^<]+)src=([\'"])([^"\']*)([\'"])([^<]*)>/i',
- '<img$1src="' . Url::display('/data/grey.gif') . '" data-original="$3"$5>',
- $content
- );
- }
|