【发布时间】:2013-02-19 14:51:04
【问题描述】:
我脚本中的一行在字符串中包含一个 PHP 结束标记。在正常操作下这不会导致问题,但我需要注释掉该行。
我尝试用//、/*、*/ 和# 注释掉这一行,但它们都不起作用,解析器认为结束标记是一个实际的结束标记。
这是有问题的行:
$string = preg_replace('#<br\s*/?>(?:\s*<br\s*/?>)+#i', '<br />', $string);
// ^^ ^^
我该怎么做才能注释掉上面的行?
【问题讨论】:
-
有趣的问题,但真实存在。我投赞成票。
-
天啊。起初我对你的问题持怀疑态度,准备问问题出在哪里,但后来我尝试用包含'?>'的字符串评论一行,我明白了。这应该添加到phpsadness.com 的长列表中
-
php.net/manual/en/language.basic-syntax.comments.php 解释了这种“功能”的用处,它在单行的情况下很有用
<?php # echo 'simple';?>。 -
@lolesque 感谢您的链接。一个很好的。一个相关的也涵盖其他语言:wiki.theory.org/YourLanguageSucks
-
@OndraŽižka 他所做的只是删除重复的 br 标签。一个正则表达式可以很好地解决这个问题。仅仅因为它有时很糟糕并不意味着它一直都很糟糕。