如何使用像浏览器这样的PHP编码URL

时间:2011-03-26 10:22:20

标签: php url browser urlencode

我有这样的网址

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,而不是我想要的。

任何帮助?

1 个答案:

答案 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