[PHP-users 35239] Re: preg_match_allによる要素の抽出

shige02 @ mac.com shige02 @ mac.com
2010年 6月 16日 (水) 17:56:47 JST


重松です。
どうしても、正規表現を使いたいのでなければ、xpath 式を使うことをおすすめします。

On Jun 16, 2010, at 4:00 PM, tk wrote:

> お世話になります。
> tkと申します。
> 
> HTMLソースから、必要なデータを抜き出したいのですが、
> 改行や、各データの要素が同じでないことで、苦戦しています。
> ご教授よろしくお願い申し上げます。
> 
> 各商品のデータは、
> 「商品番号(商品画像)、定価、セール価格」
> のブロックとして、HTMLに記述されています。
> 但し、セール価格は、ないものもあります。
> 
> HTMLソースの概略は以下のようなものです。
> ====================
> <a name="987654" href="http://www.hogehoge.com/987654"><img
> src="http://www.hogehoge.com/987654.jpg" /></a>
> <span class="teika">定価: 12,000円</span><br />
> <span class="sale">セール価格: 9,000円</span><br />
> hogehoge
> hogehoge
> hogehoge
> <a name="987789" href="http://www.hogehoge.com/987789"><img
> src="http://www.hogehoge.com/987789.jpg" /></a>
> <span class="teika">定価: 15,000円</span><br />
> hogehoge
> hogehoge
> <a name="938235" href="http://www.hogehoge.com/938235"><img
> src="http://www.hogehoge.com/938235.jpg" /></a>
> <span class="teika">定価: 9,000円</span><br />
> <span class="sale">セール価格: 7,500円</span><br />
> hogehoge
> hogehoge
> <a name="988822" href="http://www.hogehoge.com/988822"><img
> src="http://www.hogehoge.com/988822.jpg" /></a>
> <span class="teika">定価: 10,000円</span><br />
> hogehoge
> hogehoge
> hogehoge
> ====================
> 
> ここから、各商品の
> nameのところの「商品番号」
> 「定価」
> 「セール価格」
> を抜き出して
> 
> 商品番号:987654
> 定価:12,000
> セール価格:9,000
> 
> 商品番号:987789
> 定価:15,000
> セール価格:
> 
> 商品番号:938235
> 定価:9,000
> セール価格:7,500
> 
> 商品番号:988822
> 定価:10,000
> セール価格:
> 
> のように表示したいのです。
> 
> preg_match_all("/<a name=\"(\d*)\" href.*?<span class=\"teika\">定価:
> (.*)円<\/span><br \/>/s", $html_source, $matches, PREG_SET_ORDER);
> 
> として、商品番号と定価のセットだけでも抜き出そうとしているのですが、不要
> な部分もそのまま抜き出されてきます。
> また、セール価格のあるもの、ないものをどのように組み込めば良いのかが、わ
> からず困っています。
> (以下全体があるかないか不明で、あれば、金額を抜き出す)
> <span class="sale">セール価格: (.*)円</span><br />
> 
> ご教授よろしくお願い申し上げます。
> tk
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3

-- 
Osamu Shigematsu



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