[PHP-users 33103] mb_ereg_replace について
Tomoo Nomura
nomurat @ tmo.co.jp
2008年 1月 15日 (火) 22:57:02 JST
こんにちは。
複数行からなるWEBページの中から、ある文字に続く番号を取り出したいのです
が、適当な関数がなく困っております。
今、webページ全体をを変数 $rtn に読み込んでいます。
取り出したい文字は、
....
....
申込番号 756 </td>
....
.....
とあるところの"756" です。
mb_ereg_replace は改行文字(\n)も正規化文字(.)に含めるオプションがありま
すので、これを使うと便利なのですが、
$num = mb_ereg_replace( "(.*申込番号 ?)(\d{1,5})( ? .*)",
"$2", $rtn, "m" ) ;
としてやると、$num に "$2" と入ってしまって、2個目のマッチした文字に置き
換わりません。
致し方なく、
$rtn = str_replace( "\n", "", $rtn ) ;
$num = preg_replace( "/(.*申込番号 ?)(\d{1,5})( ? .*)/",
"$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 メーリングリストの案内