Intereting Posts
Предупреждение PHP: модуль уже загружен в Unknown в строке 0 Преобразование случайных значений из / dev / urandom nginx: connect () не удалось (111: соединение отказано) при подключении к восходящему потоку Можете ли вы повторно заполнить входы файлов после неудачной отправки формы с помощью PHP или JavaScript? Как вставить PHP в jQuery? Htaccess: добавить / удалить конечную косую черту из URL Лучший способ гарантировать правильные значения параметров Ajax-вызовов Как я могу изменить окончания строк, используемые fputcsv? Symfony & Guard: «Токен безопасности был удален из-за исключения AccountStatusException» Как стирать метки безопаснее, чем использовать функцию strip_tags? Использовать JavaScript для stripslashes? возможное Производительность PHP затруднена требованием () Как я могу поместить составные клавиши в модели в Laravel 5? Получить пространство имен дочерних классов из суперкласса в PHP Фильтр поиска продолжался

Как очистить URL-адрес SSL или HTTPS

Я написал функцию, чтобы очистить сайт, используя CURL, но он ничего не возвращает при вызове и не может понять, почему. Выход пуст

<?php function scrape($url) { $headers = Array( "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Cache-Control: max-age=0", "Connection: keep-alive", "Keep-Alive: 300", "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7", "Accept-Language: en-us,en;q=0.5", "Pragma: " ); $config = Array( CURLOPT_RETURNTRANSFER => TRUE , CURLOPT_FOLLOWLOCATION => TRUE , CURLOPT_AUTOREFERER => TRUE , CURLOPT_CONNECTTIMEOUT => 120 , CURLOPT_TIMEOUT => 120 , CURLOPT_MAXREDIRS => 10 , CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8" , CURLOPT_URL => $url , ) ; $handle = curl_init() ; curl_setopt_array($handle,$config) ; curl_setopt($handle,CURLOPT_HTTPHEADER,$headers) ; $data = curl_exec($handle) ; curl_close($handle) ; return $data ; } echo scrape("https://www.google.com") ; ?> 

Есть две возможные ошибки при попытке очистить URL-адрес ssl или https:

  1. Быстрое исправление
  2. Правильное исправление

Быстрое исправление, во-первых.

Предупреждение: это может привести к проблемам безопасности, с которыми SSL защищен.

set: CURLOPT_SSL_VERIFYPEER => false

Второе и правильное исправление. Установите 3 варианта:

  1. CURLOPT_SSL_VERIFYPEER => true
  2. CURLOPT_SSL_VERIFYHOST => 2
  3. CURLOPT_CAINFO => getcwd() . '\CAcert.pem'

Последнее, что вам нужно сделать, это загрузить сертификат CA.

Перейти к, – http://curl.haxx.se/docs/caextract.html -> click 'cacert.pem' -> скопировать / вставить текст в текстовый редактор -> сохранить файл как 'CAcert.pem' Проверьте, что это не «CAcert.pem. txt '

 <?php function scrape($url) { $headers = Array( "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "Cache-Control: max-age=0", "Connection: keep-alive", "Keep-Alive: 300", "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7", "Accept-Language: en-us,en;q=0.5", "Pragma: " ); $config = Array( CURLOPT_SSL_VERIFYPEER => true, CURLOPT_SSL_VERIFYHOST => 2, CURLOPT_CAINFO => getcwd() . '\CAcert.pem', CURLOPT_RETURNTRANSFER => TRUE , CURLOPT_FOLLOWLOCATION => TRUE , CURLOPT_AUTOREFERER => TRUE , CURLOPT_CONNECTTIMEOUT => 120 , CURLOPT_TIMEOUT => 120 , CURLOPT_MAXREDIRS => 10 , CURLOPT_USERAGENT => "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8" , CURLOPT_URL => $url ) ; $handle = curl_init() ; curl_setopt_array($handle,$config) ; curl_setopt($handle,CURLOPT_HTTPHEADER,$headers) ; $output->data = curl_exec($handle) ; if(curl_exec($handle) === false) { $output->error = 'Curl error: ' . curl_error($handle); } else { $output->error = 'Operation completed without any errors'; } curl_close($handle) ; return $output ; } $scrape = scrape("https://www.google.com") ; echo $scrape->data; //uncomment for errors //echo $scrape->error; ?>