我正在尝试使用cURL访问一系列网址。一些链接如下所示:
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()函数,但是这个函数也会对每个目录中的http://和/后编码,这将不允许页面在cURL中正确加载。是否有一些正则表达式可用于在每个/之后分隔单词并单独编码,但忽略根目录之前的所有内容的编码?
答案 0 :(得分:0)
您可以编写一个函数来以您拥有的格式(数组)获取输入,并以所需的格式输出它,如下所示:
function urlencode_array($url_array)
{
$encoded = array();
foreach ($url_array as $url) {
$encoded[] = "http://" . str_replace("%2F", "/", rawurlencode(substr($url, 7)));
}
return $encoded;
}