2016-08-05 10 views
1

サイトを新しいサーバーに移行しましたが、PHPバージョンが拡張(5.3)と同じであることを確認しました。Preg_Match_All:コンパイルに失敗しました

私はpreg_match_allに1つの問題があります。私が手にエラーがある:

preg_match_all()[function.pregマッチ-ALL]: コンパイルが失敗した:?(Rまたは([+ - ]数字が続かなければならない) で22

オフセット)それはノーサポートとランダムなプラグインです

if (preg_match_all('/([^{]++)({([^{}]++|(?R2))*})/', $code, $items, PREG_SET_ORDER)) { // split declarations 

が、それは実際に行方不明になった場合だけと思った:

この行はあります。

何らかの理由で、このコードは元のサーバーのままで動作します。

答えて

0

関数を実行しようとしている文字列のサンプルを置く方がよいでしょう。

ただし、エラーは '?'正規表現の演算子です。あなたはそれをエスケープする必要があります。バックスラッシュで

if (preg_match_all('/([^{]++)({([^{}]++|(\?R2))*})/', $code, $items, PREG_SET_ORDER)) { // split declarations 
関連する問題