我正在尝试使用cURL访问URL数组。一些链接如下所示:
http://somelink.com/directory/file name.php
http://somelink.com/file name.php
http://somelink.com/(some file).txt
http://somelink.com/directory/random chars &^%.txt
http://somelink.com/!@#$%^&*.txt
只是一些带有一些随机字符的文件。我知道有urlencode()函数,但是此函数还在每个目录后对URL http://和/进行URL编码,这将不允许页面在cURL中正确加载。是否有一些正则表达式可用于分隔每个/后面的单词并分别对其进行编码,但忽略根目录/之前的所有内容的编码?
您可以编写一个函数以采用您拥有的格式(数组)输入并以所需的格式输出它,如下所示:
function urlencode_array($url_array)
{
$encoded = array();
foreach ($url_array as $url) {
$encoded[] = "http://" . str_replace("%2F", "/", rawurlencode(substr($url, 7)));
}
return $encoded;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句