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实现多服务器共享SESSION数据的方法
Mar 16 PHP
php类常量的使用详解
Jun 08 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
php动态变量定义及使用
Jun 10 PHP
PHP代码实现爬虫记录――超管用
Jul 31 PHP
如何解决PHP无法实现多线程的问题
Sep 25 PHP
PHP+jQuery翻板抽奖功能实现
Oct 19 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
PHP微信H5支付开发实例
Jul 25 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 PHP
禁止直接访问php文件代码分享
May 05 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遍历数组的方法分享
2012/03/22 PHP
codeigniter中测试通过的分页类示例
2014/04/17 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
用js控件div的滚动条,让它在内容更新时自动滚到底部的实现方法
2016/10/27 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
JS轮播图的实现方法
2020/08/24 Javascript
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python生成器(Generator)详解
2015/04/13 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
OpenCV 模板匹配
2019/07/10 Python
python怎么调用自己的函数
2020/07/01 Python
Python暴力破解Mysql数据的示例
2020/11/09 Python
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
初一生物教学反思
2014/01/18 职场文书
小加工厂管理制度
2014/01/21 职场文书
优良学风班申请材料
2014/02/13 职场文书
上班玩手机检讨书
2014/02/17 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
情况说明书怎么写
2015/10/08 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
Mysql 如何批量插入数据
2021/04/06 MySQL