PHPと正規表現を使用してWebページから価格を取得しようとしています。価格は£123.12または$123.12(つまり、ポンドまたはドル)の形式になります。
libcurlを使用してコンテンツを読み込んでいます。次に、その出力はになりpreg_match_all
ます。したがって、次のようになります。
$contents = curl_exec($curl);
preg_match_all('/(?:\$|£)[0-9]+(?:\.[0-9]{2})?/', $contents, $matches);
これまでのところ簡単です。問題は、ページに価格がある場合でも、PHPがまったく一致していないことです。'£'文字に問題があることに絞り込みました-PHPはそれを好まないようです。
これは文字セットの問題かもしれないと思います。しかし、私が何をしても、PHPをそれに合わせることができないようです!誰かアイデアはありますか?
(編集:同じ正規表現とページコンテンツを使用して正規表現テストツールを使用しようとすると、正常に動作することに注意してください)