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 相关文章推荐
漂亮但不安全的CTB
Oct 09 PHP
打造计数器DIY三步曲(中)
Oct 09 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
Php header()函数语法及使用代码
Nov 04 PHP
浅析php中json_encode()和json_decode()
May 25 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
php生成唯一数字id的方法汇总
Nov 18 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
php支持断点续传、分块下载的类
May 02 PHP
php中上传文件的的解决方案
Sep 25 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 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笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP中串行化用法示例
2016/11/16 PHP
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
jQuery替换textarea中换行的方法
2015/06/10 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
vue中的provide/inject的学习使用
2018/05/09 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
jQuery带控制按钮轮播图插件
2020/07/31 jQuery
Python里隐藏的“禅”
2014/06/16 Python
Python 文件处理注意事项总结
2017/04/10 Python
Python定时器实例代码
2017/11/01 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
django创建超级用户过程解析
2019/09/18 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
电子专业毕业生自我鉴定
2014/01/22 职场文书
初三化学教学反思
2014/01/23 职场文书
超市创业计划书
2014/04/24 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
元宵节晚会主持词
2015/07/01 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
Redis性能监控的实现
2021/07/09 Redis