【问题标题】:Compilation failed: unmatched parentheses in appstageUrlMatcher.php编译失败:appstageUrlMatcher.php 中的括号不匹配
【发布时间】:2012-07-23 19:06:28
【问题描述】:

在我的生产系统上,我在 symfony 路由器中遇到错误:

警告:preg_match() [function.preg-match]:编译 失败:偏移 60 处的括号不匹配 /mypath/app/cache/prod/appprodUrlMatcher.php 第 205 行

而在本地机器和另一台服务器上它工作正常。

我在缓存中挖掘,路线的模式不同:

在我的开发服务器上工作:

#^/hotels/(?<groupId>[^/\\-]+)\\-(?<groupName>[^\\-]+)$#s

没有在生产中工作:

#^/hotels(?:/(?<groupId>[^/\\-]+)(?:\\-(?<groupName>[^\\-]+))?)?)?$#s

路线是:

hotel:
    pattern: /hotels/{groupId}-{groupName}
    defaults: { _controller: "MyBundle:Hotel:hotel", requirements:{ groupName: "[a-zA-Z1-9\+\/]+" } }

我在 github 上阅读了一些问题,即在使用旧的 PCRE 时可能会出现类似的错误。 https://github.com/symfony/symfony/issues/4093
我的似乎足够新:PHP 5.3.6 和 PCRE 版本 8.11。
我在 Solaris 上。

模式是由 symfony 生成的,对吧?那么,为什么模式不同呢?
毕竟为什么它不起作用?有人知道吗?

【问题讨论】:

    标签: symfony


    【解决方案1】:

    这不是 symfony 的问题,而是这台 Solaris 机器上 PHP 5.3.6 版本中的错误。
    常量 INF 返回 float(0),这会破坏路由。

    在此处查看更多信息:php INF has value zero

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      相关资源
      最近更新 更多