Reputation: 317
I have an URL like this
http://www.example.com/Data/image/office-dôn-sì-à.jpg
I want to copy that file to my server using copy function in php. So the first thing is to encode it to this (I think browsers do the same thing)
http://www.example.com/Data/image/office-d%C3%B4n-s%C3%AC-%C3%A0.jpg
But if I use function urlencode, full url will be encoded to
http%3A%2F%2Fwww.example.com%2FData%2Fimage%2Foffice-d%C3%B4n-s%C3%AC-%C3%A0.jpg
which is not an URL anymore and not what I want.
Any help?
Upvotes: 9
Views: 6010
Reputation: 73292
So, the other answers here have largely ignored your post, it seems. Let's hope I have not done the same.
It seems to me that you only want to encode the basename? If that is true, this ad-hoc function should do the trick:
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
Upvotes: 9