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

use*_*960 9 php browser url urlencode

我有这样的网址

http://www.example.com/Data/image/office-dôn-sì-à.jpg
Run Code Online (Sandbox Code Playgroud)

我想使用php中的复制功能将该文件复制到我的服务器.所以首先要对它进行编码(我认为浏览器会做同样的事情)

http://www.example.com/Data/image/office-d%C3%B4n-s%C3%AC-%C3%A0.jpg
Run Code Online (Sandbox Code Playgroud)

但是如果我使用函数urlencode,则会将完整的url编码为

http%3A%2F%2Fwww.example.com%2FData%2Fimage%2Foffice-d%C3%B4n-s%C3%AC-%C3%A0.jpg
Run Code Online (Sandbox Code Playgroud)

这不再是一个URL而不是我想要的.

有帮助吗?

Rus*_*ias 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
Run Code Online (Sandbox Code Playgroud)