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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
PHP中CURL方法curl_setopt()函数的参数分享
Jan 19 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
分享PHP-pcntl 实现多进程代码
Sep 30 PHP
ThinkPHP 模板substr的截取字符串函数详解
Jan 09 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
laravel 获取某个查询的查询SQL语句方法
Oct 12 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新手上路(十四)
2006/10/09 PHP
PHP 字符串分割和比较
2009/10/06 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
php模拟post行为代码总结(POST方式不是绝对安全)
2012/02/22 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP实现浏览器格式化显示XML的方法示例
2019/01/22 PHP
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
微信小程序 基础组件与导航组件详细介绍
2017/02/21 Javascript
js实现简单的选项卡效果
2017/02/23 Javascript
深入理解Node.js中的进程管理
2017/03/13 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
js中关于Blob对象的介绍与使用
2019/11/29 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
使用Python实现一个简单的项目监控
2015/03/31 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
Python时间序列处理之ARIMA模型的使用讲解
2019/04/02 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
在django view中给form传入参数的例子
2019/07/19 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
迪奥美国官网:Dior美国
2019/12/07 全球购物
外企测试工程师面试题
2015/02/01 面试题
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
创业分两种人:那么哪些适合创业?,哪些适合不适合创业呢?
2019/08/23 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书