PHP:从Instagram API图像网址中剥离协议

时间:2014-09-27 12:22:36

标签: php regex json parse-url

这是来自Instagram JSON的片段:

"images":{
    "standard_resolution":
        { "url":"http:\/\/scontent-a.cdninstagram.com\/hphotos-xfa1\/t51.2885-15\/10593467_370803786404217_1595289732_n.jpg","width":640,"height":640}
}

我想从['images']['standard_resolution']['url']剥离协议。我尝试过:

.parse_url($value['images']['standard_resolution']['url'], PHP_URL_HOST) . parse_url($value['images']['standard_resolution']['url'], PHP_URL_PATH).

但什么也没做!我认为这与在JSON(/)中完成的http:\/\/转义有关。因为如果我尝试

.parse_url("http://www.google.com", PHP_URL_HOST) . parse_url("http://www.google.com", PHP_URL_PATH).

..它运作正常。我想保持简单......不要使用正则表达式。 parse_url会很完美。

1 个答案:

答案 0 :(得分:1)

为什么你甚至需要替换或正则表达式呢?

如果您使用json_decode,则转义的斜杠是未转义的。

这样做:

<?php

$foo = '{"images":{"standard_resolution":{"url":"http:\/\/scontent-a.cdninstagram.com\/hphotos-xfa1\/t51.2885-15\/10593467_370803786404217_1595289732_n.jpg","width":640,"height":640}}}';
$bar = json_decode($foo, true);

$baz = 
parse_url($bar['images']['standard_resolution']['url'], PHP_URL_HOST) . 
parse_url($bar['images']['standard_resolution']['url'], PHP_URL_PATH);

echo $baz;

输出:

scontent-a.cdninstagram.com/hphotos-xfa1/t51.2885-15/10593467_370803786404217_1595289732_n.jpg

请参阅:

http://ideone.com/F0c4m9