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一些服务器端特性的配置加强php的安全
Oct 09 PHP
一个php作的文本留言本的例子(六)
Oct 09 PHP
聊天室php&amp;mysql(五)
Oct 09 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
用PHP实现弹出消息提示框的两种方法
Dec 17 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
使用PHPExcel操作Excel用法实例分析
Mar 26 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
如何利用PHP实现上传图片功能详解
Sep 24 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
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
js获取html参数及向swf传递参数应用介绍
2013/02/18 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
vue实现评价星星功能
2020/06/30 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
python 实现堆排序算法代码
2012/06/05 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
python实现上传下载文件功能
2020/11/19 Python
python如何定义带参数的装饰器
2018/03/20 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python IDE Pycharm中的快捷键列表用法
2019/08/08 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python圣诞树编写实例详解
2020/02/13 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
中学教师岗位职责
2013/11/26 职场文书
硕士研究生求职自荐信范文
2014/03/11 职场文书
2014年关于两会精神的心得体会
2014/03/17 职场文书
写给领导的感谢信
2015/01/22 职场文书
争先创优个人总结
2015/03/04 职场文书
三八节活动主持词
2015/07/04 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
MongoDB支持的索引类型
2022/04/11 MongoDB
Nginx配置之禁止指定IP访问
2022/05/02 Servers