【问题标题】:quercus php and RegexpException: Delimiter A in regexp 'Array' must not be backslash or alphanumericquercus php 和 RegexpException:正则表达式“数组”中的分隔符 A 不能是反斜杠或字母数字
【发布时间】:2013-08-22 01:51:01
【问题描述】:

我是新来的,我知道标题中的错误已经在这里讨论过,但我没有找到任何问题的答案。 我正在尝试使用 quercus for php 使 phpbb3 在我的服务器上与 tomcat6 一起工作。 一切都很好,除了 bbcode.php 模块在第 112 行给我一个错误(在标题中),即:

$message = preg_replace($preg['search'], $preg['replace'], $message);

我在 phpbb3 论坛寻求帮助,但他们告诉我问题出在 quercus。

仍然没有在 quercus 邮件列表中找到答案。

我想知道如何将这条线换成另一条做同样工作的线。

提前致谢。

编辑:

也许我找到了问题的根源:

'preg' => array(
                        '#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#ise' => "\$this->bbcode_second_pass_quote('\$1', '\$2')"

关键是这段代码在大多数情况下都能完美运行,也许是 Quercus 需要不同的 sintax。

您可以在此处找到完整的 bbcode.php:http://ftp.phpbb-fr.com/public/cdd/phpbb3/3.0.10/nav.html?includes/bbcode.php.source.html

【问题讨论】:

标签: php tomcat phpbb3 quercus


【解决方案1】:

正则表达式必须是delimited。通常,分隔符是斜线。 PHP 也允许使用字母数字分隔符。

$preg["search"] 没有分隔,可能只是regex。必须是:/regex/#regex#|regex|等。

以下代码抛出错误:

echo preg_replace(array('1', '2'), array('one', 'two'), '1 2');

应该是:

echo preg_replace(array('/1/', '/2/'), array('one', 'two'), '1 2');

欢迎来到 StackOverflow。

【讨论】:

  • 您的意思是斜杠 (/),而不是反斜杠 (`\`)?
  • 坦克,所以应该是:$message = preg_replace($preg[/'search'/], $preg[/'replace'/], $message);
  • 没有。 $preg['search']里面的值需要分隔。
  • 我用更多信息编辑了消息我认为问题从这里开始:'preg' => array('#[quote(?:="(.*?)")?:$ uid]((?![quote(?:=".*?")?:$uid]).)?#ise' => "\$this->bbcode_second_pass_quote('\$1', '\$2 ')"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 2023-04-11
  • 1970-01-01
相关资源
最近更新 更多