[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 メーリングリストの案内