Php 如何为所有url设置curl_setopt以使用curl下载url?
有许多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);
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)已为我的目标删除了code>。您的意思是,如果要使用Curl
而不是file\u get\u contents()
?这取决于你想要什么。你只是下载内容吗?是否需要标题等。curl\u setopt($curl,CURLOPT\u NOBODY,1)已删除我的目标的代码>。