[PHP-users 16787]Re: 置換時の関数の利用方法

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 7月 17日 (木) 18:12:43 JST


重松です。こんにちは。

> 正規表現に一致した文字列を引数として受け取り処理した
> 文字列に置換する。という作業を行いたく以下のようにし
> てみたのですが、この渡し方では"\\1"という文字列が渡る
> だけのようです。
> 
> eregi_replace("&#(.....);", test_func(\\1), $string);

すみません。まったく意味がわかりません。
日本語も、PHP のスクリプトも。

マニュアルよくよくよくよく読んだほうがいいと思うんですが。。。

	http://www.php.net/manual/ja/

そして、やりたいことを具体的に、せめて日本語ではまともに書いてください。
コードが書けるなら、質問にはならないでしょうけど、そっちも、
一行ではなくて、現状、どうしてそういうコードなのか、
コメントをつけるなりして、疑問を他人に伝える努力が必要かと思います。

> eregi、eregi_replace、explode を使って無理やりにどう
> にかできるとは思うのですが、かなりアクセスが予想され
> る処理なので、何度も正規表現関数を使うのは避けたいと
> 思っております。

explode は、指定した文字 (列) で、文字列を配列に分ける関数、
ereg_replace は、正規表現置換で、どっちも日本語未対応です。
(EUC, Shift_JIS は場合により多分 NG, UTF-8 は多分問題なし)

というか、かなりアクセスってどの程度??

こういう小手先の最適化よりも、処理全体の見直しのほうが、
パフォーマンスを向上できる可能性が高いと思いますし、
それ以前に、ちゃんとプロファイリングして、
ボトルネックを見極めることが肝要かと思います。

まずは、実行速度云々以前に、動くコードを書くことから
始めることをお勧めします。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内