在php中获取url响应的最佳方法是什么?

时间:2012-06-07 18:51:29

标签: php url

说我想得到这个网址的回复:

http://www.google.com/ig/calculator?hl=en&q=100USD%3D%3FEUR

是:

{lhs:“100美元”,rhs:“79.3839803欧元”,错误:“”,icc:true}

然后检索rhs值。

如何在PHP中轻松实现这一目标?

3 个答案:

答案 0 :(得分:1)

echo file_get_contents('http://www.google.com/ig/calculator?hl=en&q=100USD%3D%3FEUR');
// {lhs: "100 U.S. dollars",rhs: "79.3839803 Euros",error: "",icc: true}

答案 1 :(得分:1)

它没有返回有效的JSON,因此最简单的方法是修复字符串(使其成为合法的JSON)并对其进行解码。

类似的东西:

<?php
    $output = file_get_contents('http://www.google.com/ig/calculator?hl=en&q=100USD%3D%3FEUR');
    $output = str_replace('rhs','"rhs"',$output);
    $output = str_replace('lhs','"lhs"',$output);
    $output = str_replace('error','"error"',$output);
    $output = str_replace('icc','"icc"',$output);

    $json = json_decode($output);
    $rhs = $json->rhs;
?>

答案 2 :(得分:0)

<?php
    $resp=file_get_contents('http://www.google.com/ig/calculator?hl=en&q=100USD%3D%3FEUR');
    $pos=strpos($resp,'rhs:')+6;
    $pos2=strpos($resp,'"',$pos);
    $euros=substr($resp,$pos,$pos2-$pos);
?>