PHP5.5 の普及に伴い、ECSHOP システムに新しいエラーが発生しています。 PHP が PHP5.5 に開発されてから、多くの微妙な変更が加えられました。 ECSHOP の公式アップデートは遅すぎ、これらの問題が発見されてもアップグレードが間に合わず、ユーザーはインストール中や使用中にエラーだらけになってしまいます。長い間話し続けた後、この新しいエラーは正確には何ですか? その完全なエラー メッセージは次のとおりです:
非推奨: preg_replace(): /e 修飾子は非推奨です。代わりに preg_replace_callback を使用してください....
注意: すべての ECSHOP がこのエラーを報告するわけではありません。PHP5.5 環境を使用している ECSHOP のみがこのエラーを報告します。
次の ecshop 開発センター (www.68ecshop.com) チュートリアルでは、最初にエラーの理由について説明しています:
1)、エラーの理由:
preg_replace() 関数で使用される修飾子 /e は、PHP5.5.x では非推奨になりました。
PHP バージョンが PHP5.5.X の場合、ECSHOP は必ず次のようなエラーを報告します:
非推奨: preg_replace(): /e 修飾子は非推奨です。代わりに preg_replace_callback を使用してください...
2)、解決策:
実際、先ほどのエラー メッセージからも、preg_replace の代わりに preg_replace_callback を使用するよう求められていることが分かります。
したがって、解決策は次のようになります:
メモ帳または他の PHP 編集ソフトウェア (editplus など) を使用してファイル include/cls_template.php を開き、
を見つけますreturn preg_replace("/{([^}{n]*)}/e", "$this->select('\1');", $source);
を
に置き換えましたreturn preg_replace_callback("/{([^}{n]*)}/", function($r) { return $this->select($r[1]); }, $source);
問題は解決しました。
3)、 ECSHOP 内の他のファイルでも同様の preg_replace エラーが報告される場合は、上記の方法を参照して解決してください。解決策のアイデアと解決策は同じです。
上記の ECSHOP は Deprecated: preg_replace() のエラー報告を完全に解決します。これは編集者が共有するすべての内容です。参考にしていただければ幸いです。また、皆さんにも Bangkejia をサポートしていただければ幸いです。