无法str_replace空间

时间:2011-01-29 06:15:25

标签: php str-replace utf8-decode

我尝试从谷歌中取出数字字符串并将其清理干净。

<?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;   
?>
然而,我得到的数字有空间。 我试图用针“”或“&amp; nbsp;”替换它。或utf8_encode,解码$ content。它们都不起作用。

4 个答案:

答案 0 :(得分:0)

可能因为它不是真正的空间,即使看起来像它。您可以尝试使用正则表达式替换所有\w

答案 1 :(得分:0)

<?php标记之前的空格中它也在您的代码中?那可能是空间检查!

答案 2 :(得分: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;
?>

答案 3 :(得分:0)

这不是您要删除的空间,它是“à”,在浏览器中不可见。您还可以通过命令行使用php脚本来检查这些内容。您可以使用html实体函数,然后根据

替换