在我的生产系统上,我在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生成的,对吧?那么,为什么模式不同?
毕竟为什么它不起作用?有人有任何线索吗?
答案 0 :(得分:0)
这不是symfony问题,而是这台Solaris机器上的PHP 5.3.6版本中的一个错误 常量INF返回 float(0),它炸毁了路由。
在此处查看更多内容:php INF has value zero