2011-12-31 20 views
0

正規表現を使用して特定のページで価格を取得しようとしていますが、取得したコンテンツを保存するために使用する変数は常に空です。正しい正規表現を書いてくれた人がいますか?PHPの正規表現を使用してhtmlページからデータを取得

ページがある場合:http://www.flipkart.com/mobiles/memory-cards/itmczcsrtvjeb6nr?pid=acccrrqzzsgnfgea&_l=sXQjsX87GxqrvKzhjuOrkw--&_r=n_2yuAC4xgh0SZTuulvAtw--&ref=af8ad0c4-62a2-4381-99d3-3ad8285e260b

私はここからの価格260を取得したいです。

タグのページの一部のHTMLコード:それはfinal-priceクラスが使用されている唯一の時間ですので、これは動作するはずのよう

<span id="fk-mprod-our-id" class="price final-price our fksk-our">Rs.<span class="small-font"> </span>260</span> 

答えて

0

通貨が変更される可能性がありますと仮定すると、 IP /国によっては、私はExplodeを使っていたでしょう(正規表現であまり良くありません)

私はそれが助けてくれることを願っています。

2

simplehtmldomを使用して、より多くの防弾パーサーを書くことができます - http://simplehtmldom.sourceforge.net/を参照してください。私にとっては、文書を解析することに決して失敗しませんでした。

正規表現

と比較すると、それはパフォーマンスの悪夢だけれどもあなたは、この

<?php 
include_once '/path/to/simplehtmldom/simple_html_dom.php'; 
$html = file_get_html('http://www.flipkart.com/mobiles/memory-cards/itmczcsrtvjeb6nr?pid=acccrrqzzsgnfgea&_l=sXQjsX87GxqrvKzhjuOrkw--&_r=n_2yuAC4xgh0SZTuulvAtw--&ref=af8ad0c4-62a2-4381-99d3-3ad8285e260b'); 
foreach ($html->find('span.final-price') as $element) { 
    echo $element->plaintext; 
} 
//will output "Rs. 260", unless page changes 

よりクリーンなコードのようなコードになってしまいます

関連する問題