我有一个很长的网址:
$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
对其网址进行编码的方式
答案 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
的第二个参数,因此它命名返回数组的键,这样使用/修改更清晰。显然根本不需要它。