php: получить исходный код html с помощью cURL

Как я могу получить исходный код html http://www.example-webpage.com/file.html без использования file_get_contents() ?

Мне нужно это знать, потому что на некоторых веб-хостах allow_url_fopen отключен, поэтому вы не можете использовать file_get_contents() . Возможно ли получить источник html-файла с помощью cURL (если включена поддержка cURL)? Если да, то как? Благодарю.

Solutions Collecting From Web of "php: получить исходный код html с помощью cURL"

Попробуйте следующее:

 $ch = curl_init("http://www.example-webpage.com/file.html"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); $content = curl_exec($ch); curl_close($ch); 

Я бы рекомендовал это только для небольших файлов. Большие файлы читаются в целом и могут вызвать ошибку памяти.

edit: после некоторого обсуждения в комментариях мы выяснили, что проблема в том, что servercouldnt разрешает имя хоста, а страница дополнительно содержит https-ресурс, поэтому сюда приходит ваше временное решение (до тех пор, пока ваш serveradmin не исправляет разрешение имен).

то, что я сделал, просто pinging graph.facebook.com, чтобы увидеть ip-адрес, заменить имя хоста на ip-адрес и вместо этого дать заголовок вручную. это, тем не менее, делает ssl-сертификат недействительным, поэтому мы должны сдерживать проверку сверстников

 //$url = "https://graph.facebook.com/19165649929?fields=name"; $url = "https://66.220.146.224/19165649929?fields=name"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Host: graph.facebook.com')); $output = curl_exec($ch); curl_close($ch); 

имейте в виду, что IP-адрес может измениться, и это источник eror. вы должны также выполнять некоторую обработку ошибок с помощью curl_error ();

 $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); curl_close($curl); 

Источник: http://www.christianschenk.org/blog/php-curl-allow-url-fopen/

Попробуйте http://php.net/manual/en/curl.examples-basic.php 🙂

 <?php $ch = curl_init("http://www.example.com/"); $fp = fopen("example_homepage.txt", "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); fclose($fp); ?> 

Как говорится в документации:

Основная идея функций cURL заключается в том, что вы инициализируете сеанс cURL с помощью curl_init (), тогда вы можете установить все свои параметры для передачи через curl_setopt (), затем вы можете выполнить сеанс с curl_exec (), а затем вы завершите сеанс, используя curl_close () .