我正在使用兑换货币api获取当前美元汇率。使用PHP代码获取内容后,但在打印后放在括号中,
$url = "http://rate-exchange.appspot.com/currency?from=USD&to=PKR&q=1";
$result = file_get_contents($url);
echo $result;
// print as {"to": "PKR", "rate": 103.59473699999999, "from": "USD", "v": 103.59473699999999}
如何使正则表达式仅获得美元汇率。
答案 0 :(得分:2)
这里不需要正则表达式。您从API返回的答案看起来像是JSON格式。
您要做的是在返回值上执行json_decode()
函数:
$result = file_get_contents( $url );
$data = json_decode( $result, true )
现在,您将在$data
对象中拥有一个关联数组。您将能够使用与关联数组相同的语法访问它:
echo $data[ "to" ] // PKR
echo $data[ "rate" ] // 103.59473699999999
echo $data[ "from" ] // USD
echo $data[ "v" ] // 103.59473699999999
参考文献:
答案 1 :(得分:1)
如果你真的想使用正则表达式,那么它就像是:
/"rate"\s*\:\s*"([0-9\.]+)/
无论如何你的例子看起来像json,我宁愿建议用这种方式:
$data = json_decode($contents);
echo $data->rate;
答案 2 :(得分:1)
http://rate-exchange.appspot.com/currency?from=USD&to=PKR&q=1正在为您返回JSON。 以下应该可以帮到你:
$fc = file_get_contents("http://rate-exchange.appspot.com/currency?from=USD&to=PKR&q=1");
$json = json_decode($fc, true);
echo $json['rate'];
答案 3 :(得分:1)
您从API获得的结果看起来像JSON
,它不能/不应该用(vanilla)正则表达式解析; PHP
已有json_decode()
:
$decoded = json_decode($result);
echo $decoded->rate;
答案 4 :(得分:1)
你应该在你的file_get_contents结果上使用json_decode,使用true作为第二个参数,然后在结果数组中访问你的速率作为“rate”键。
$r = json_decode(file_get_contents($url), true);
echo $r["rate"];
多数民众赞成