Я написал функцию php curl для загрузки веб-страницы с сайта с поддержкой ssl. Это не работает, как я хочу. Он повторяет сам себя, даже если я не использовал команду echo где-либо еще. Я хочу использовать эту функцию для сохранения страницы загрузки, но она сохраняет 1 файл, а не все данные.
Я уже гуглил об этой проблеме, но безуспешно. Запись о переполнении стека для меня всегда является последним вариантом, и я всегда избегаю из-за моего плохого английского, а также из-за плохого объяснения.
function gssl($target_url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,true);
curl_setopt($ch, CURLOPT_CAINFO, 'C:\Users\PC\Desktop\ssl\cacert-2019-05-15.pem');
//curl_setopt($ch, CURLOPT_CAINFO, 'https://curl.haxx.se/ca/cacert-2019-05-15.pem');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_URL,$target_url);
curl_setopt($ch, CURLOPT_VERBOSE,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
$html= curl_exec($ch);
return $html;
}
function write($post,$myFile){
$fh = fopen($myFile, 'a+') or die("can't open file");
fwrite($fh, $post);
fclose($fh);
}
Установите для CURLOPT_RETURNTRANSFER значение true.
Вы возвращаете результат curl_exec($ch);
, а не страницу с веб-сайта. Используйте параметр CURLOPT_FILE
cURL, чтобы возвращаемые данные помещались непосредственно в файл.
И, как сказал Джеймс, включите CURLOPT_RETURNTRANSFER
тоже.