Php 如何为所有url设置curl_setopt以使用curl下载url?

Php 如何为所有url设置curl_setopt以使用curl下载url?,php,curl,Php,Curl,有许多URL需要下载 foreach ($urls as $key => $url){ $path = $path .strval($key); $curl = curl_init(); curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,0); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLINFO_HEADER_OUT, 1);

有许多URL需要下载

 foreach ($urls as $key => $url){
    $path = $path .strval($key);
    $curl = curl_init();
    curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,0);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLINFO_HEADER_OUT, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_URL, $url);
    $data=curl_exec($curl);
    file_put_contents($path, $data);
    curl_close($curl);
    }
所有url都可以通过代码下载,每个url都会执行一些语句,例如:

    $curl = curl_init();
    curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,0);
    curl_setopt($curl, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLINFO_HEADER_OUT, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

重复的curl\u setopt语句可以简化吗?如何简化代码?

您永远不会执行curl请求
curl\u exec($curl)所以您甚至没有使用Curl。如果您的代码是这样工作的,您不需要这些选项中的任何一个。然后,您可以将代码简化为:

foreach ($urls as $key => $url){
    $path = $path .strval($key);
    $data=file_get_contents($url);
    file_put_contents($path, $data);
    }

您永远不会执行Curl请求
Curl\u exec($Curl)所以您甚至没有使用Curl。如果您的代码是这样工作的,您不需要这些选项中的任何一个。然后,您可以将代码简化为:

foreach ($urls as $key => $url){
    $path = $path .strval($key);
    $data=file_get_contents($url);
    file_put_contents($path, $data);
    }

最简单的方法是将这些行放在函数中并在函数中调用。最简单的方法是将这些行放在函数中并在函数中调用。您的意思是,如果要使用
Curl
而不是
file\u get\u contents()
?这取决于你想要什么。你只是下载内容吗?是否需要标题等。
curl\u setopt($curl,CURLOPT\u NOBODY,1)。您的意思是,如果要使用
Curl
而不是
file\u get\u contents()
?这取决于你想要什么。你只是下载内容吗?是否需要标题等。
curl\u setopt($curl,CURLOPT\u NOBODY,1)