0

非推奨の関数 eregi_replace() を preg_replace() で修正しようとしています。

$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a target="_blank" class="clickable" href="\1">\1</a>', $text);

$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1<a target="_blank" class="clickable" href="http://\2">\2</a>', $text);

これらを preg_replace() で動作させるにはどうすればよいですか? 私はここで頭を抱えています。

4

1 に答える 1

0

関数の名前を変更し、式を区切り記号で囲むだけです。大文字と小文字を区別しない関数eregi()およびの場合、最後の区切り文字の後に修飾子eregi_replace()を置きます。i

ereg('...', foo) // preg_match('/.../', foo)
eregi('...', foo) // preg_match('/.../i', foo)
ereg_replace('...', foo) // preg_replace('/.../', foo)
eregi_replace('...', foo) // preg_replace('/.../i', foo)

ここでは区切り記号を使用しました/が、最も意味があり、式自体に表示されない区切り記号を使用する必要があります。

(すべてではないにしても) 一般的な式の大部分は、変換を必要とせずに直接繰り越されます。私はいくつかの大規模なプロジェクトを変換しましたが、実際に式を変更しなければならないケースに遭遇したことはありませんが、違いがないわけではありません。

于 2012-07-19T12:41:41.043 に答える