繁体中文
设为首页
加入收藏
当前位置:网络编程首页 >> php >> 高亮显示php代码

高亮显示php代码

2008-04-23 11:00:38  作者:  来源:互联网  浏览次数:8  文字大小:【】【】【
简介:这是从sablog取得的一段加亮代码,调用了php系统函数highlight_string,然后将内容中的一些东西做了替换,来测试一下 下面是语法加亮函数 // 高亮显示PHP function phphighlight($code) { ...

这是从sablog取得的一段加亮代码,调用了php系统函数highlight_string,然后将内容中的一些东西做了替换,来测试一下

下面是语法加亮函数

  1. // 高亮显示PHP
  2. function phphighlight($code) {
  3.       if (floor(phpversion())<4) {
  4.            $buffer = $code;
  5.       } else {
  6.            $code = preg_replace("/<style .*?<\/style>/is", "", $code);
  7.            $code = preg_replace("/<script .*?<\/script>/is", "", $code);
  8.            $code = preg_replace("/<br\s*\/?>/i", "\n", $code);
  9.            $code = preg_replace("/<\/?p>/i", "\n", $code);
  10.            $code = preg_replace("/<\/?td>/i", "\n", $code);
  11.            $code = preg_replace("/<\/?div>/i", "\n", $code);
  12.            $code = preg_replace("/<\/?blockquote>/i", "\n", $code);
  13.            $code = preg_replace("/<\/?li>/i", "\n", $code);
  14.            $code = strip_tags($code);
  15.            $code = preg_replace("/\&\#.*?\;/i", "", $code);
  16.            $code = str_replace("   ", "  ", $code);
  17.            $code = str_replace("  ", " ", $code);
  18.            $code = str_replace(" ", "\t", $code);
  19.            $code = str_replace(""", '"', $code);
  20.            $code = str_replace("<br>", "", $code);
  21.            $code = str_replace("
  22. ", "", $code);
  23.            $code = str_replace(">", ">", $code);
  24.            $code = str_replace("<", "<", $code);
  25.            $code = str_replace("&amp;", "&", $code);
  26.            //$code = str_replace('$', '$', $code);
  27.            if (!strpos($code,"<?\n") and substr($code,0,4)!="<?\n") {
  28.                 $code="<?".trim($code)."?>";
  29.                 $addedtags=1;
  30.            }
  31.            ob_start();
  32.            $oldlevel=error_reporting(0);
  33.            highlight_string($code);
  34.            error_reporting($oldlevel);
  35.            $buffer = ob_get_contents();
  36.            ob_end_clean();
  37.            if ($addedtags) {
  38.                 $openingpos = strpos($buffer,"<?");
  39.                 $closingpos = strrpos($buffer, "?");
  40.                 $buffer=substr($buffer, 0, $openingpos).substr($buffer, $openingpos+5, $closingpos-($openingpos+5)).substr($buffer, $closingpos+5);
  41.            }
  42.            $buffer = str_replace(""", "\"", $buffer);
  43.       }
  44.       return $buffer;
  45. }

前台调用的时候用正则替换 之间的内容
$blogdata['Words'] = preg_replace("/\s*\[php\](.+?)\[\/php\]\s*/ies""phphighlight('')"$blogdata['Words']);

责任编辑:紫萱


相关文章
 

最新文章

更多

· php教程:mysql的常用语句
· PHP教程:cookie和数组的...
· PHP创建windows服务并自...
· PHP技巧教程:setcookie...
· 可以在读者复制网页内容...
· 高亮显示php代码
· PHP加速器 eaccelerator...
· ffmpeg+mencoder环境搭建...
· ffmpeg的编译大全
· Ffmpeg使用语法

推荐文章

更多

· php教程:mysql的常用语句
· PHP教程:cookie和数组的...
· PHP创建windows服务并自...
· PHP技巧教程:setcookie...
· 可以在读者复制网页内容...
· 高亮显示php代码
· PHP加速器 eaccelerator...
· ffmpeg+mencoder环境搭建...
· ffmpeg的编译大全
· Ffmpeg使用语法

热点文章

更多