[PHP-users 33103] mb_ereg_replace について

Tomoo Nomura nomurat @ tmo.co.jp
2008年 1月 15日 (火) 22:57:02 JST


こんにちは。

複数行からなるWEBページの中から、ある文字に続く番号を取り出したいのです
が、適当な関数がなく困っております。

今、webページ全体をを変数 $rtn に読み込んでいます。
取り出したい文字は、
....
....
&nbsp;&nbsp;申込番号&nbsp; 756 &nbsp; </td>
....
.....

とあるところの"756" です。
mb_ereg_replace は改行文字(\n)も正規化文字(.)に含めるオプションがありま
すので、これを使うと便利なのですが、
$num = mb_ereg_replace( "(.*申込番号&nbsp; ?)(\d{1,5})( ?&nbsp;.*)",
"$2", $rtn, "m" ) ;
としてやると、$num に "$2" と入ってしまって、2個目のマッチした文字に置き
換わりません。
致し方なく、
$rtn = str_replace( "\n", "", $rtn ) ;
$num = preg_replace( "/(.*申込番号&nbsp; ?)(\d{1,5})( ?&nbsp;.*)/",
"$2", $rtn ) ;
として、なんとか動いているのですが、あまりエレガンスではないのと、
preg_replaceがマルチバイトに対して問題がないのか、2点気になっています。
なにかもっと良い解決策はないでしょうか?
とりあえず動いていますので、気軽にアドバイスして頂くと助かります。

野村

-- 
****** Nomura Technical Management Office Ltd. *****************
 Tomoo Nomura      nomura @ tmo.co.jp       http://www.tmo.co.jp/
    Phone: +81-78-797-0240 Fax: +81-50-3428-2033
 Worldwide Airline Timetable 'Flight Planner'
 European Electronic Timetable 'HAFAS'         ValueFax Support
****************************************************************



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