0) { $save .= $block; if (preg_match("/^$tag_close$/", $block)) { $depth--; if ($depth == 0) { $output .= $prot_open.base64_encode($save).$prot_close; $save = ""; } } } else { $output .= $block; } } return $output; } /** Unprotect base64 blocks. */ function textUnprotectTags($prot_open, $prot_close, $input) { $splits = preg_split("/($prot_open.+$prot_close)/",$input,-1,PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY); $output = ""; foreach ($splits as $block) { if (preg_match("/^$prot_open(.+)$prot_close$/", $block, $match)) { $output .= base64_decode($match[1]); } else { $output .= $block; } } return $output; } /** Protect HTML code from Textism. */ function htmlProtectFromTextism($input) { return textProtectTag("", "<\/protect>", "{NOP:", ":NOP}", $input); } /** Restore HTML code that was protected from Textism. */ function htmlUnprotectFromTextism($input) { $input = textUnprotectTags("

\s*{NOP:", ":NOP}\s*<\/p>", $input); $input = textUnprotectTags("{NOP:", ":NOP}", $input); return preg_replace('/<\/?protect>/', "", $input); } /** Protect PHP code. */ function phpProtect($input) { return textProtectTag("<\?php", "\?>", "{PHP:", ":PHP}", $input); } /** Unprotect PHP code. */ function phpUnprotect($input) { return textUnprotectTags("{PHP:", ":PHP}", $input); } /** Convert XHTML-compliant tags to plain HTML. */ function xhtmlToHtml($input) { return html_accent(preg_replace("/<(br|img|input|p)( [^\/]*)?\/>/","<\$1\$2>",$input)); } /** Restore XHTML-compliant tags. */ function htmlToXhtml($input) { return preg_replace("/<(br|img|input)( [^>]+)?>/","<\$1\$2/>",$input); } ?>