有谁遇到过preg_replace终止程序?

Xsir007 2006-09-06 04:52:43
有谁遇到过preg_replace终止程序?

我看了php manual,里边只有提到过
preg_match返回false,如果出错的话
但是preg_replace的出错都没有提及到

有谁知道。

因为我的程序突然间就终止了。查了老半天就到了这一句。而且就是进行不下去。

也就是说程序到了pre_replace这句就不走了。没有什么死循环之类的,就是不走。页面也提示平时没有连接上网络那种。

谁懂? 帮帮忙。

-------------------程序片断:

$comment_pattern = "<!--\s*#(.|\s)*?-->";
$con = preg_replace("/ $comment_pattern/e", "", $con);
目的是 删除$conn程序中的<!-- # -->这种类型的注释。对于一般的数据就可以。但是偶尔遇到一些{...}(好多行的)的数据程序就突然终止了。
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloyou0 2006-09-07
  • 打赏
  • 举报
回复
试试在最新的版本里是否也有,如果还有并且可重复,
可以把bug报告给php.net
zeroleonhart 2006-09-06
  • 打赏
  • 举报
回复
/<!--.*#.*-->/isU
Xsir007 2006-09-06
  • 打赏
  • 举报
回复
楼上的。什么意思?

查了一下。发现是我的正则表达式的错误导致的,原因。但是还是不清楚为什么preg_replace会终止程序。


我想匹配所有的 类似
1 <!-- # -->
2 <!-- #
.....
..... -->
3 <!-- #
....
....
-->
这三种普遍的格式的注释。怎么写正则表达式合适?

我一开始采用的是 <!--\s*#(.|\n)*?-->

我现在更改为以下的数组,程序没有终止了。但是我还是想知道原因是什么。谁知道贴一下!!!

$comment_pattern[0]="/<!--\s*#\s*.*\s*-->/";
$comment_pattern[1]="/<!--\s*#\s*.*((\n.*)(?!-->))*\n\s*-->/";
$comment_pattern[2]="/<!--\s*#\s*.*((\n.*)(?!-->))*\n([A-Za-z0-9\._\x7f-\xff]+?|(\s))*-->/";

使用以上的正则表达式数组。但是对于第2种情况,好像不怎么理想。

谁帮下忙看看。
chinaworker 2006-09-06
  • 打赏
  • 举报
回复
error_reporting(E_ERROR );

21,882

社区成员

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

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