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读MYSQL中文乱码的解决方法
Dec 17 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
header跳转和include包含问题详解
Sep 08 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php foreach正序倒序输出示例代码
Jul 01 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
解决php的“It is not safe to rely on the system’s timezone settings”问题
Oct 08 PHP
PHP常见数组函数用法小结
Mar 21 PHP
Zend Framework生成验证码并实现验证码验证功能(附demo源码下载)
Mar 22 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
May 27 PHP
php面试实现反射注入的详细方法
Sep 30 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
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
2010/12/02 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
详解element-ui日期时间选择器的日期格式化问题
2019/04/08 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
python 性能提升的几种方法
2016/07/15 Python
详解python使用Nginx和uWSGI来运行Python应用
2018/01/09 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
Python装饰器用法实例分析
2019/01/14 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
构造方法和其他方法的区别
2016/04/26 面试题
计算机专业个人求职自荐信
2013/09/21 职场文书
读书笔记怎么写
2015/07/01 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
Java使用Unsafe类的示例详解
2021/09/25 Java/Android