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 相关文章推荐
第三节--定义一个类
Nov 16 PHP
php中通过smtp发邮件的类,测试通过
Jan 22 PHP
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
php可应用于面包屑导航的递归寻找家谱树实现方法
Feb 02 PHP
用php守护另一个php进程的例子
Feb 13 PHP
PHP连接MySQL数据的操作要点
Mar 20 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP获取一年有几周以及每周开始日期和结束日期
Aug 06 PHP
深入理解PHP 数组之count 函数
Jun 13 PHP
php压缩文件夹最新版
Jul 18 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
Symfony2实现从数据库获取数据的方法小结
2016/03/18 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
jQuery实现select模糊查询(反射机制)
2017/01/14 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
2017/11/29 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
澳大利亚药房在线:ThePharmacy
2017/10/04 全球购物
加拿大国民体育购物网站:National Sports
2018/11/04 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
求职自荐信
2013/12/14 职场文书
火锅店的活动方案
2014/08/15 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫