Я так делаю
function get_Yandex_disk($url){ //Инициализируем сеанс $curl = curl_init(); //Указываем адрес страницы curl_setopt($curl, CURLOPT_URL, $url); //Ответ сервера сохранять в переменную, а не на экран curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //Переходить по редиректам curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); $agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'; curl_setopt($curl, CURLOPT_USERAGENT, $agent); //$getUserAgent = getUserAgent(); //curl_setopt($curl, CURLOPT_USERAGENT, $getUserAgent); curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); curl_setopt($curl, CURLOPT_TIMEOUT, 20); //timeout in seconds //cookie curl_setopt($curl, CURLOPT_COOKIEJAR, __DIR__. '/cookie.txt'); curl_setopt($curl, CURLOPT_COOKIEFILE, __DIR__. '/cookie.txt'); //если сайт https curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); //http2 если нужно curl_setopt($curl, CURLOPT_HTTP_VERSION, 3); //Выполняем запрос: $result = curl_exec($curl); $httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE); return array( "code" => $httpcode, "response" => $result );}
Где урл публичная ссылка на Яндекс диск
$result = get_Yandex_disk( "https://cloud-api.yandex.net:443/v1/disk/public/resources/download?public_key=" . urlencode( $url )); if( $result["code"] == 200 ) { $result["response"] = json_decode( $result["response"], true ); $urlDownload = $result["response"]["href"]; }else { echo "error"; }
По ссылке, что советует totamon у меня довольно часто ловит капчу от Яндекса.
Все таки нужно было закрывать соединение. Закрыл его перед циклом, и стал открывать уже в каждой итерации (и закрывать в конце) и ошибка пропала.
Странно, впервые такое приходится делать
Сколько времени работает скрипт?
Если долго, то да, нужно закрывать соединение и открывать заново.
Это для долгого консольного выполнения скрипта в основном.
до ошибки минуты 2-3
вроде нет, сделал
$chek2 = null;$result2 = null;
не помогло
У тебя ошибка выдаётся не на select, а на insert.
Нет - именно на селект, я уже проверил это, был второй try-catch, я его просто убрал.
Может заблочить доступ к сайту с IP v6?
Естественно заблочить, нафиг вы вообще открыли? Я когда паршу сайты (которые с защитой), первым делом проверяю - а не отрыт ли IP6 ибо прокси под него оч. дешевые.
Смысла в антивире ноль.
Лично я себе сделал некий аналог - раз в 30 минут все файлы сервера (за исключением папок кеша) анализируются на время создания, если есть изменения, мне приходит уведомление. За последние 10 лет такой простой скрипт помог мне дважды очень быстро увидеть что меня взломали (через кривые расширения CMS) и быстро все устранить.