彩色显示和格式化PHP代码

Meteorlet 2005-01-30 12:40:10
花了一个晚上写了一个可以彩色显示和格式化PHP代码的PHP程序,大部分功能已经实现,
还有一些小BUG,有兴趣的朋友一起来看看。我是字符一个一个分析的,所以很麻烦,不知道
有没有什么好的实现方法?
这里是演示地址:http://www.imsorry.com.cn/php/convert.php
调用的源码是:
<?php
include 'colortext.class.php';

header("Content-Type:text/html;charset=GB2312");

$cf = new CColorText();
$cf->SetFileName('colortext.class.php'); // 设置文件名
$cf->SetFormat(true); // 格式化代码
?>
<html>
<head>
<style type="text/css">
body {font-size: 9pt;}
</style>
</head>
<body>
<?
// 输出内容
echo $cf->Format();
?>
</body>
</html>
...全文
310 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
surfchen 2005-01-31
  • 打赏
  • 举报
回复
嗯~~有格式化功能?没注意看帖子,真不好意思...

不错不错...帮顶一下
xuzuning 2005-01-31
  • 打赏
  • 举报
回复
经测试,毛病多多。暂列如下,望修订!
bug
1、把数组元素定义的“=>”算符处理成了“= >”
2、把switch的默认项default;处理成了default:default
3、把形如$this->mbNewStatement= true ;处理成了形如$this->=mbNewStatement true ;
4、直接把\t替换撑个空格是不妥当的
5、把
$this->mResultString.= "<font color='".
$this->mColorMap[$this->mFileType]['string']."'>";
显示成
$this->mResultString.= "$this->mColorMap[$this->mFileType]['string']."'>";
是不妥当的
-神仙- 2005-01-31
  • 打赏
  • 举报
回复
有没有演示程序?

lawyu 2005-01-31
  • 打赏
  • 举报
回复
不错,
有问题没关系,类似的成熟的有很多好的软件,
用来学习和谈论还是很不错的
向楼主学习 支持
Meteorlet 2005-01-31
  • 打赏
  • 举报
回复
谢谢 xuzuning(唠叨),几个问题我今天测试也发现了,下班以后fix。
还有几个问题和说明:
1)同时//分行注释的时候,会显示在一行内
2)case语句的格式化比较麻烦,现在会显示成这种格式:
case 1:
{
break;
}
case 2:
break;
3) default关键字没有加入关键字列表
4) \t在格式化的时候是忽略的,忽略的还有空格,\r\n,就是这段代码:
if ($this->mbIgnoreSpace)
{
$str = preg_replace('/([\n])/', '', $str ) ;
$str = str_replace("\t", '', $str ) ;
$str = str_replace(' ', '', $str ) ;
}
5) 对于一条语句没有结束就换行,现在的做法是保持原有格式,没有格式化也是有问题的,
应该统计一行不超过80个字符,也没有好的思路
6)扩展的时候类c语言还可以,都是{}分割,但是象vb是换行 end语句结束的,也不能这么
分析
7)效率确实是个问题,跟c直接用指针操作比肯定会比较慢,只能想想能不能优化点了

也许本身这个程序没有什么用途,但是去做的时候会发现其中有很多可以研究的东西的
patchclass 2005-01-30
  • 打赏
  • 举报
回复
东西蛮好的,我现在都很少做这类东西玩了:-)
就是不知道你的处理效率如何,如果是用C用指针处理字符是很快的,你可以测试你从效率看看,有时候文章很长的,看看花费的时间
patchclass 2005-01-30
  • 打赏
  • 举报
回复
好,看看再说:-)
Meteorlet 2005-01-30
  • 打赏
  • 举报
回复
接下来,我还要扩展到其它语言如C++,java,vb的高亮显示和格式化,希望能提点意见
Meteorlet 2005-01-30
  • 打赏
  • 举报
回复
我知道有,但是自己实现跟用现成的还是不一样的吧?
而且我写的这个类是可以对PHP代码重新格式化的。
大家可以不用回车换行空格,不用对齐,输入一段PHP代码测试一下
-神仙- 2005-01-30
  • 打赏
  • 举报
回复
对的
php有现成的功能的
surfchen 2005-01-30
  • 打赏
  • 举报
回复
这里是演示地址
http://www.yubeinet.com/surfchen/simple.class.html
surfchen 2005-01-30
  • 打赏
  • 举报
回复
我一般是这样
echo highlight_string($code);

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧