PHP:get_headers问题是带有空格的有点AND长URL

时间:2015-03-19 15:54:48

标签: php url

我有一个很长的网址:

$url='http://www.likecool.com/Car/Motorcycle/BMW%20Urban%20Racer%20Concept%20Motorcycle/BMW-Urban-Racer-Concept-Motorcycle.jpg';

我创建了一个简短的:

$url='http://goo.gl/oZ04P8';     
$url='http://bit.ly/1CzOQbf';

我运行$headers = get_headers($url); print_r($headers);

情景:

对于goo.gl短代码,

get_headers 正确 ,但对于BITLY短代码<404>

区别在于BITLY在长网址(坏)和GOOGL%20(好)中显示空格

get_headers重定向(长)网址(带空格)时,它会失败。

我认为没有明显的办法解决这个问题 - 我错过了什么吗?

两个选项 - 更改BITLY编码?的方式(我强制在长网址中格式化%20格式) - 更改get_headers对其网址进行编码的方式

1 个答案:

答案 0 :(得分:1)

收到标题后,您可以自行替换标题内容:

$url = 'http://bit.ly/1CzOQbf';
$headers = get_headers($url, 1);
$headers['Location'] = str_replace(' ', '%20', $headers['Location']);
print_r($headers);

输出:

[Location]=>http://www.likecool.com/Car/Motorcycle/BMW%20Urban%20Racer%20Concept%20Motorcycle/BMW-Urban-Racer-Concept-Motorcycle-1.jpg

我添加了get_headers的第二个参数,因此它命名返回数组的键,这样使用/修改更清晰。显然根本不需要它。