2011-12-27 4 views
-3

私はこの警告を受け取り、廃止されました:関数ereg_replace()は非推奨です 誰か助けてください。ereg_replace to preg_replace

ereg_replace:にpreg_replaceへ

ereg_replace('([^(folder)])/images/flash', '"/folder/images/flash', $echotemp); 

+0

[ここ](http://php.net/manual/en/function.preg-replace.php)、特に[ここ](http://www.php.net/manual /en/reference.pcre.pattern.posix.php)。 – Dan

+0

これはどの言語ですか?より具体的な答えが必要な場合は、この情報を追加して、あなたの質問の可視性に役立つでしょう – samy

+0

'([^(folder)])'は正規表現の中で何を意味しますか? – Toto

答えて

0

非推奨の方法は、将来的にあなたが使用している言語を中退される方法です。あなたが言語仕様とロードマップをコントロールしていない限り、あなたは多くの力を持っていません。

このメソッドを使用することはできますが、将来のアップデートでは消えてしまう可能性があります。通常、このメソッドについてのサポートは、新しい推奨されるやり方に切り替えることを推奨します。

ereg_replaceの置換方法を使用することをおすすめします。

0

から:ereg_replace

注:
PHP 5.3.0の時点で、正規表現の拡張はPCRE延長の賛成で廃止されました。この関数を呼び出すと、E_DEPRECATED通知が発行されます。 PCREへの変換については、the list of differencesを参照してください。

。 Perl互換の正規表現構文を使用しています

ヒント

にpreg_replace()は、しばしばereg_replaceする速い代替です()。

読む:

PCRE関数を使用して、パターンがdelimitersで囲まれていることが必要です:


そして、あなたのパターンについてPCRE regex syntax。区切り文字には、英数字以外の非バックスラッシュ、空白以外の文字を使用できます。

よく使用される区切り文字は、スラッシュ(/)、ハッシュ記号(#)、ティルダ(〜)です。

区切り文字をパターン内でマッチングする必要がある場合は、バックスラッシュを使用してエスケープする必要があります。デリミタがパターン内に頻繁に表示される場合は、読みやすさを高めるために別のデリミタを選択することをお勧めします。 だから、あなたのパターンは次のようになります。あなたは[^(フォルダ)]での使用を持っていることを[]

([^(folder)])/images/flash
は、文字セット全体ではなく単語を指定するためのものです。シンプルなパターンを使用し、検索パターンを複雑にしない方が優れています。

%^/folder/images/flash%
これは簡単です。 I am using % as delimiter for readability.#を使用していないため、stackoverflowはそれを見出しとして扱います:P。