- $s = html_entity_decode($s,ENT_COMPAT,'UTF-8');
-
- // Remove CR to avoid problems with following code
- $s = str_replace("\r","",$s);
-
- $s = str_replace("\n"," \n",$s);
-
- // The parser cannot handle paragraphs correctly
- $s = str_replace(array("</p>", "<p>", '<p dir="ltr">'),array("<br>", "<br>", "<br>"),$s);
-
- // Escaping the hash tags
- $s = preg_replace('/\#([^\s\#])/','#$1',$s);
-
- $s = Markdown($s);
-
- $s = preg_replace('/\@\{(.+?)\; (.+?)\@(.+?)\}/','@[url=https://$3/u/$2]$1[/url]',$s);
-
- $s = str_replace('#','#',$s);
-
- $search = array(" \n", "\n ");
- $replace = array("\n", "\n");
- do {
- $oldtext = $s;
- $s = str_replace($search, $replace, $s);
- } while ($oldtext != $s);
-
- $s = str_replace("\n\n", "<br>", $s);
-
- $s = html2bbcode($s);
-
- // protect the recycle symbol from turning into a tag, but without unescaping angles and naked ampersands
- $s = str_replace('♲',html_entity_decode('♲',ENT_QUOTES,'UTF-8'),$s);