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数据库抽象层 PDO
May 07 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
Sep 16 PHP
php header函数的常用http头设置
Jun 25 PHP
php实现的微信红包算法分析(非官方)
Sep 25 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
PHP遍历目录文件的常用方法小结
Feb 03 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
PHP中SESSION过期设置
Mar 09 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php zip文件解压类代码
2009/12/02 PHP
利用Ffmpeg获得flv视频缩略图和视频时间的代码
2011/09/15 PHP
PHP5.4中json_encode中文转码的变化小结
2013/01/30 PHP
PHP依赖倒置(Dependency Injection)代码实例
2014/10/11 PHP
php中chdir()函数用法实例
2014/11/13 PHP
php处理带有中文URL的方法
2016/07/11 PHP
yii2使用gridView实现下拉列表筛选数据
2017/04/10 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
javascript框架设计读书笔记之数组的扩展与修复
2014/12/02 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
JavaScript常用数组算法小结
2016/02/13 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
vue中进行微博分享的实例讲解
2019/10/14 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
Python实现列表转换成字典数据结构的方法
2016/03/11 Python
python中的colorlog库使用详解
2019/07/05 Python
快速了解Python开发环境Spyder
2020/06/29 Python
基本款天堂:Everlane
2017/05/13 全球购物
应届大学生自荐信格式
2013/09/21 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
工程承包协议书
2014/04/22 职场文书
诉讼财产保全担保书
2014/05/20 职场文书
工地安全生产标语
2014/06/06 职场文书
大专学生求职自荐信
2014/07/06 职场文书
2014年消防工作总结
2014/11/21 职场文书
社区义诊通知
2015/04/24 职场文书
酒会开场白大全
2015/06/01 职场文书
毕业生政审意见范文
2015/06/04 职场文书
Python PIL按比例裁剪图片
2022/05/11 Python