PHP preg_replace_callback适用于5.3但不适用于5.2.17

时间:2012-07-17 04:02:55

标签: php regex preg-replace-callback

我有以下代码:

    return preg_replace_callback("#\{gallery: '(.+?)'(?: dir: ([0-1]))?\}#i", create_function('$i', '$dir = isset( $i[2] ) ? 1 : 0; $oGallery = new Gallery( $i[1] ) ; $oGallery->PublicSide($dir);' ), $string);

问题是这可以在我的本地主机(PHP5.3)上运行,但是当我将它上传到我的服务器(5.2.17)时它没有...任何想法为什么?似乎与"#\{gallery: '(.+?)'(?: dir: ([0-1]))?\}#i"

上的单引号有关

1 个答案:

答案 0 :(得分:2)

你实际上并没有从你的回调中返回任何内容,所以它不会进行任何替换。也许你打算这样做呢?

... return $oGallery->PublicSide($dir); ...