gpt4 book ai didi

php - 在php中为url编码中文字符

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:43 24 4
gpt4 key购买 nike

所以我有一堆 url,其中一些有中文字符,如下所示:http://www.abcdefg.com/ad2/zh/profile/2169358/1/冰绿茶/

但是我需要处理所有这些 url,并将其中包含中文字符的 url 编码成如下所示:http://www.abcdefg.com/ad2/zh/profile/2169358/1/%E4%BA%8C%E4%B8%8D%E4%BA%8C%E7%9A%84%E4% BA%8C/

所以中文部分必须用php编码。

我尝试使用 urlencoderawurlencode 但都没有用。

如有任何帮助,我们将不胜感激!

注意:编码的 url 旨在存储而不是由浏览器显示,因此不能更改 header 。

最佳答案

对于这种情况,您可能希望使用 parse_url()分隔 URL 组件和仅 urlencode() pathquery 组件。

$url = 'http://www.abcdefg.com/ad2/zh/profile/2169358/1/冰绿茶/';
$parsed = parse_url($url);

print_r($parsed);

你会得到

Array
(
[scheme] => http
[host] => www.abcdefg.com
[path] => /ad2/zh/profile/2169358/1/冰绿茶
)

因此,urlencode() pathquery(如果有的话)。

一旦对它们进行了 URL 编码,您将需要重新组合,以便 scheme (http)、host(www.abcdefg.com) 不受影响。

如果您仍然希望完整地保留 /,请在对其进行 URL 编码之前先使用 explode() path

$pathComponents = explode('/', $parsed['path']);

$pathComponents = array_map('urlencode', $pathComponents);

// Assemble back $path
$path = implode('/', $pathComponents);

关于php - 在php中为url编码中文字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11661881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com