php实现简单的语法高亮函数实例分析


Posted in PHP onApril 27, 2015

本文实例讲述了php实现简单的语法高亮函数。分享给大家供大家参考。具体分析如下:

这是一个php实现的简单语法高亮显示的函数,注意:这个函数设计的比较简单,可能对某些语法不能高亮显示,你可以自己扩充该函数的功能

function syntax_highlight($code){
 // this matches --> "foobar" <--
 $code = preg_replace(
  '/"(.*?)"/U', 
  '"<span style="color: #007F00">$1</span>"', $code
 );
 // hightlight functions and other structures like --> function foobar() <--- 
 $code = preg_replace(
  '/(\s)\b(.*?)((\b|\s)\()/U', 
  '$1<span style="color: #0000ff">$2</span>$3', 
  $code
 );
 // Match comments (like /* */): 
 $code = preg_replace(
  '/(\/\/)(.+)\s/', 
  '<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>', 
  $code
 );
 $code = preg_replace(
  '/(\/\*.*?\*\/)/s', 
  '<span style="color: #660066; background-color: #FFFCB1;"><i>$0</i></span>', 
  $code
 );
 // hightlight braces:
 $code = preg_replace('/(\(|\[|\{|\}|\]|\)|\->)/', '<strong>$1</strong>', $code);
 // hightlight variables $foobar
 $code = preg_replace(
  '/(\$[a-zA-Z0-9_]+)/', '<span style="color: #0000B3">$1</span>', $code
 );
 /* The \b in the pattern indicates a word boundary, so only the distinct
 ** word "web" is matched, and not a word partial like "webbing" or "cobweb" 
 */
 // special words and functions
 $code = preg_replace(
  '/\b(print|echo|new|function)\b/', 
  '<span style="color: #7F007F">$1</span>', $code
 );
 return $code;
}
/*example-start*/
/*
** Create some example PHP code:
*/
$example_php_code = '
// some code comment:
$example = "foobar";
print $_SERVER["REMOTE_ADDR"];
$array = array(1, 2, 3, 4, 5);
function example_function($str) {
 // reverse string
 echo strrev($obj);
}
print example_function("foo");
/*
** A multiple line comment
*/
print "Something: " . $example;';
// output the formatted code:
print '<pre>';
print syntax_highlight($example_php_code);
print '</pre>';
/*example-end*/

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP控制网页过期时间的代码
Sep 28 PHP
PHP开发规范手册之PHP代码规范详解
Jan 13 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
探讨GDFONTPATH能否被winxp下的php支持
Jun 21 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
PHP中foreach()用法汇总
Jul 02 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
php格式化json函数示例代码
May 12 PHP
PHP实现上一篇下一篇的方法实例总结
Sep 22 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
php中加密解密DES类的简单使用方法示例
Mar 26 PHP
php转换颜色为其反色的方法
Apr 27 #PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 #PHP
PHP+jQuery+Ajax实现用户登录与退出
Apr 27 #PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 #PHP
php使用cookie实现记住登录状态
Apr 27 #PHP
php curl请求信息和返回信息设置代码实例
Apr 27 #PHP
PHP rsa加密解密使用方法
Apr 27 #PHP
You might like
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP实现验证码校验功能
2017/11/16 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
ext实现完整的登录代码
2008/08/08 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
jquery实现图片滚动效果的简单实例
2013/11/23 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法
2017/03/08 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
python 域名分析工具实现代码
2009/07/15 Python
Python下使用Psyco模块优化运行速度
2015/04/05 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
Django视图类型总结
2021/02/17 Python
诚实守信演讲稿
2014/09/01 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
学校团代会开幕词
2016/03/04 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
多台电脑共享文件怎么设置?多台电脑共享文件操作教程
2022/04/08 数码科技
Nginx利用Logrotate实现日志分割
2022/05/20 Servers