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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
PHP设计模式之结构模式的深入解析
Jun 13 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
Smarty中常用变量操作符汇总
Oct 27 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
Jun 29 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
php+javascript实现的动态显示服务器运行程序进度条功能示例
Aug 07 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
php上传后台无法收到数据解决方法
Oct 28 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如何将log信息写入服务器中的log文件
2015/07/29 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP对象相关知识总结
2017/04/09 PHP
js继承 Base类的源码解析
2008/12/30 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
Angular5给组件本身的标签添加样式class的方法
2018/04/07 Javascript
vue和webpack项目构建过程常用的npm命令详解
2018/06/15 Javascript
webpack4简单入门实例
2018/09/06 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
vue 源码解析之虚拟Dom-render
2019/08/26 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
python线程中同步锁详解
2018/04/27 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
记录Python脚本的运行日志的方法
2019/06/05 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
简单的Python人脸识别系统
2020/07/14 Python
Python Flask异步发送邮件实现方法解析
2020/08/01 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
英国电子专家:maplin
2019/09/04 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
师生聚会感言
2014/01/26 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
给老婆的检讨书(搞笑版)
2015/05/06 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
浅谈Python 中的复数问题
2021/05/19 Python