我有这样的网址
http://www.example.com/Data/image/office-dôn-sì-à.jpg
我想在php中使用 copy 函数将该文件复制到我的服务器。所以首先要对它进行编码(我认为浏览器会做同样的事情)
http://www.example.com/Data/image/office-d%C3%B4n-s%C3%AC-%C3%A0.jpg
但如果我使用函数 urlencode ,则完整网址将被编码为
http%3A%2F%2Fwww.example.com%2FData%2Fimage%2Foffice-d%C3%B4n-s%C3%AC-%C3%A0.jpg
这不再是一个URL,而不是我想要的。
任何帮助?
答案 0 :(得分:9)
所以,这里的其他答案在很大程度上忽略了你的帖子。我希望我没有做同样的事情。
在我看来,你只想编码基名?如果这是真的,这个ad-hoc函数应该可以解决这个问题:
function encode_basename($url) {
$url = explode('/', $url);
$base = array_pop($url);
return implode('/', $url) . '/' . urlencode($base);
}
//returns: http://www.example.com/Data/image/office-d%25C3%25B4n-s%25C3%25AC-%25C3%25A0.jpg