現在WEBのマーケティングをしているのですが、HTML取得後に重複した規則性のある部分データを取得したいと考えています。
例えば
<a href="
http://page10.auctions.yahoo.co.jp/jp/auction/m64501064">
のデータの中で
m64501064 のデータを抜き取りたいのですが
<a href="
http://page8.auctions.yahoo.co.jp/jp/auction/h134424986">
と
<a href="
http://page8.auctions.yahoo.co.jp/jp/auction/h134424986">
の二つのURLがこのHTMLの文章の前にあります。
抜き取りたい条件ですが
HTML文章の最初から数えて3番目
先頭が <a href="http: を含み
中盤が auctions.yahoo.co.jp/jp/auction/ を含んだ
上記と同じ条件の auctions.yahoo.co.jp/jp/auction/ の後の情報を抜き取りたいとした場合
どのようなpregmatch関数命令があるのでしょうか?
page10の数字の部分はランダムになるのでpreg_match関数の条件として部分的にはずしたいのですが、そのようなことはできますでしょうか?
このあと同じ条件の5番目、7番目も同じように抜き取りたい場合どのような感じになりますでしょうか?
お手数をおかけしますが出来るかたおりましたらご回答お待ちしております。
こんな感じでしょうか?
<?php $str = ' 例えば <a href="http://page10.auctions.yahoo.co.jp/jp/auction/m64501064"> のデータの中で m64501064 のデータを抜き取りたいのですが <a href="http://page8.auctions.yahoo.co.jp/jp/auction/h134424986"> と <a href="http://page8.auctions.yahoo.co.jp/jp/auction/h134424986"> の二つのURLがこのHTMLの文章の前にあります。'; preg_match_all('|<a\s[^>]*href="http://[a-zA-Z0-9\-\.]*auctions\.yahoo\.co\.jp/jp/auction/([^"]+)"|s', $str, $m); print_r($m[1]); /* ↓出力結果 Array ( [0] => m64501064 [1] => h134424986 [2] => h134424986 ) */
ご回答ありがとうございます。