使用cURL编码PHP的PHP

时间:2014-06-11 21:47:11

标签: php regex curl encoding

我正在尝试使用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中正确加载。是否有一些正则表达式可用于在每个/之后分隔单词并单独编码,但忽略根目录之前的所有内容的编码?

1 个答案:

答案 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;
}