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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
PHP禁止页面缓存的代码
Oct 23 PHP
浅析memcache启动以及telnet命令详解
Jun 28 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
PHP中session变量的销毁
Feb 27 PHP
php调用shell的方法
Nov 05 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
PHP使用Session实现上传进度功能详解
Aug 06 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
2014过年倒计时示例
2014/01/31 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
JS 自动安装exe程序
2008/11/30 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JavaScript实现网页截图功能
2014/10/16 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jQuery中$(function() {});问题详解
2015/08/10 Javascript
jQuery实现页面评论栏中访客信息自动填写功能的方法
2016/05/23 Javascript
js 实现一些跨浏览器的事件方法详解及实例
2016/10/27 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
2017/01/03 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
如何正确理解vue中的key详解
2019/11/02 Javascript
javascript实现点击按钮切换轮播图功能
2020/09/23 Javascript
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
python 队列详解及实例代码
2016/10/18 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
python3.6编写的单元测试示例
2019/08/17 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
2020/04/13 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
2021/01/09 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
巴西最大的家具及装饰用品店:Mobly
2017/10/11 全球购物
课程改革实施方案
2014/03/16 职场文书
一年级学生评语大全
2014/04/21 职场文书
Win11 Beta 22621.601 和 22622.601今日发布 KB5017384修复内容汇总
2022/09/23 数码科技