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 5.0创建图形的巧妙方法
Oct 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php字符串函数学习之substr()
Mar 27 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
php基础教程
Aug 26 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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载入页面时编码的方法
2014/07/29 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
总结AJAX相关JS代码片段和浏览器模型
2007/08/15 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
Vue组件通信实践记录(推荐)
2017/08/15 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
python 图片去噪的方法示例
2019/07/09 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法
2020/07/28 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
竟聘演讲稿范文
2013/12/31 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
银行党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
商业用房租赁协议书
2014/10/13 职场文书
奖励通知
2015/04/22 职场文书
唐山大地震的观后感
2015/06/05 职场文书
厉行节约工作总结
2015/08/12 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js