rendered paste bodyfunction strtotext($str){ // Försäkra sig om att alla radbrytningar är \n $str = str_replace(array("\n\r", "\r\n", "\r"), "\n", $str); // Lagra alla kod-block i en array $code_matches = array(); preg_match_all('/\[php](.*?)\[\/php]/is', $str, $code_matches); // Ta bort all kod innan text-formateringen $str = preg_replace('/\[php](.*?)\[\/php]/is', "\n\n[CODE-BLOCK]\n\n", $str); // Kör igenom kod-blocken for ($i = 0; $i < count($code_matches[1]); $i++) { // Ta bort den första och sista radbrytningen if (substr($code_matches[1][$i], 0, 1) == "\n") { $code_matches[1][$i] = substr($code_matches[1][$i], 1); } if (substr($code_matches[1][$i], -1, 1) == "\n") { $code_matches[1][$i] = substr($code_matches[1][$i], 0, -1); } // Kör highlight_string på kod-blocken $code_matches[1][$i] = "<div class=\"code_php\"><span class=\"code\">" . highlight_string($code_matches[1][$i], true) . "</span></div><p class=\"norm\">"; } $str = htmlentities($str); // Grunderna - Fet, kursiv, understruken $str = preg_replace('/\[b](.*?)\[\/b]/', '<strong>\1</strong>', $str); $str = preg_replace('/\[i](.*?)\[\/i]/', '<i>\1</i>', $str); $str = preg_replace('/\[u](.*?)\[\/u]/', '', $str); // Länkar - URL1 & URL2 $str = preg_replace('/\[url=((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\]([^\]\[]+)\[\/url\]?/e',"'$1'!=''?'<a href=\"$1$3$5$6\">$7</a>':'<a href=\"http://$3$5$6\">$7</a>'", $str); $str = preg_replace('/\[url]((https?|ftps?):\/\/)?(([-_a-zA-Z]+\.)*)([a-zA-Z]{2,6})(\/[^\]\[\s]*)?\[\/url\]/e',"'$1'!='' ?'<span class=\"main_links\"><a href=\"$1$3$5$6\">$1$3$5$6</a></span>':'<span class=\"main_links\"><a href=\"http://$3$5$6\">$3$5$6</a></span>'", $str); // Färger - Röd, grön, blå & orange $str = preg_replace('/\[color=(red|green|blue|orange)](.*?)\[\/color]/', '<span class="\1">\2</span>', $str); // Lägg tillbaka alla kod-block foreach ($code_matches[1] as $block) { $str = str_replace_once("[CODE-BLOCK]", $block, $str); } return $str;}