1

私はグーグルから数字の文字列を引き出してクリーンアップしようとしています。

<?php
$q="35 meter in inch";
$query = explode (" ",$q);  
$googleUrl="http://www.google.com/search?q=$query[0]+$query[1]+$query[2]+$query[3]";
$package = file_get_contents("$googleUrl");
$content = preg_replace('/.*<h2[^>]* style="font-size:138%"><b>|<\/b><\/h2>.*/si', "", $package) ;
$number = explode (" ",$content);
$result = str_replace(' ','',$number[3]);
echo $result;   
?>

しかし、私が持っている番号にはスペースがあります。針「」または「&nbsp;」に置き換えてみました。またはutf8_encode、$contentをデコードします。それらのどれも動作しません。

4

4 に答える 4

0

問題の解決策としては、preg_replace(); を使用して数字や句読点以外のものを置き換えるのが最善の答えです。これを試して:

<?php
$q="35 meter in inch";
$query = explode (" ",$q);  
$googleUrl="http://www.google.com/search?q=$query[0]+$query[1]+$query[2]+$query[3]";
$package = file_get_contents("$googleUrl");
$content = preg_replace('/.*<h2[^>]* style="font-size:138%"><b>|<\/b><\/h2>.*/si', "", $package) ;
$number = explode (" ",$content);
$result = preg_replace("/[^\d.]/", '', $number[3]);
echo $result;
?>

ただし、google.com/ig/calculator の使用を検討することをお勧めします。帯域幅を大幅に節約し、完全な Google 結果ページを取得して置き換える必要がなくなります: http://www.google.com/ig/calculator?hl=en&q=35%20meter%20in%20inch

<?php
$q="35 meter in inch";
$query = explode (" ",$q); 
$googleUrl="http://www.google.com/ig/calculator?q=$query[0]+$query[1]+$query[2]+$query[3]";
$content = file_get_contents("$googleUrl");
preg_match("/rhs:\s\"(.*)\",error/", $content, $number);
$num = explode(" ", $number[1]);
$num = preg_replace("/[^\d.]/", '', $num[0]);
echo $num;
?>
于 2011-01-29T08:01:10.980 に答える
0

空間のように見えても、実際には空間ではないからでしょう。\wすべてを正規表現に置き換えてみてください。

于 2011-01-29T06:17:37.400 に答える
0

<?phpこんにちは、あなたのコードにもタグを付ける前のスペースですか?それなら、それはスペースチェックを与えているかもしれません!

于 2011-01-29T06:17:56.433 に答える
0

これは削除しようとしているスペースではありません。ブラウザに表示されないのは「à」です。コマンドラインで php スクリプトを使用して、これらのことを確認することもできます。htmlエンティティ関数を使用して、それに応じて置き換えることができます

于 2011-01-29T08:39:58.640 に答える