Конфигурация сервера: allow_url_fopen = 0 в

При запуске скрипта я получаю следующую ошибку. Сообщение об ошибке выглядит следующим образом …

Предупреждение: file_get_contents () [function.file-get-contents]: https: // оболочка отключена в конфигурации сервера allow_url_fopen = 0 в /home/satoship/public_html/connect.php в строке 22

Я знаю, что это проблема с сервером, но что мне нужно сделать для сервера, чтобы избавиться от вышеуказанного предупреждения?

Если у вас нет возможности изменить файл php.ini, используйте cURL: PHP Curl And Cookies

Вот пример, который я создал:

 function get_web_page( $url, $cookiesIn = '' ){ $options = array( CURLOPT_RETURNTRANSFER => true, // return web page CURLOPT_HEADER => true, //return headers in addition to content CURLOPT_FOLLOWLOCATION => true, // follow redirects CURLOPT_ENCODING => "", // handle all encodings CURLOPT_AUTOREFERER => true, // set referer on redirect CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect CURLOPT_TIMEOUT => 120, // timeout on response CURLOPT_MAXREDIRS => 10, // stop after 10 redirects CURLINFO_HEADER_OUT => true, CURLOPT_SSL_VERIFYPEER => true, // Validate SSL Cert CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_COOKIE => $cookiesIn ); $ch = curl_init( $url ); curl_setopt_array( $ch, $options ); $rough_content = curl_exec( $ch ); $err = curl_errno( $ch ); $errmsg = curl_error( $ch ); $header = curl_getinfo( $ch ); curl_close( $ch ); $header_content = substr($rough_content, 0, $header['header_size']); $body_content = trim(str_replace($header_content, '', $rough_content)); $pattern = "#Set-Cookie:\\s+(?<cookie>[^=]+=[^;]+)#m"; preg_match_all($pattern, $header_content, $matches); $cookiesOut = implode("; ", $matches['cookie']); $header['errno'] = $err; $header['errmsg'] = $errmsg; $header['headers'] = $header_content; $header['content'] = $body_content; $header['cookies'] = $cookiesOut; return $header; } 

ПРИМЕЧАНИЕ. При повторном просмотре этой функции я заметил, что я отключил проверки SSL в этом коде. Это, как правило, ПЛОХАЯ вещь, хотя в моем конкретном случае сайт, который я использовал, был локальным и был безопасным. В результате я изменил этот код, чтобы по умолчанию проверять SSL. Если по какой-то причине вам нужно изменить это, вы можете просто обновить значение для CURLOPT_SSL_VERIFYPEER, но я хотел, чтобы код был защищен по умолчанию, если кто-то использует это.

@blytung Имеет хорошую функцию для замены этой функции

 <?php $url = "http://www.example.org/"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); $contents = curl_exec($ch); if (curl_errno($ch)) { echo curl_error($ch); echo "\n<br />"; $contents = ''; } else { curl_close($ch); } if (!is_string($contents) || !strlen($contents)) { echo "Failed to get contents."; $contents = ''; } echo $contents; ?> 

Используйте этот код в своем php-скрипте (первые строки)

 ini_set('allow_url_fopen',1); 

Измените свой php.ini, найдите allow_url_fopen и установите его allow_url_fopen = 1

ЭТО ОЧЕНЬ ПРОСТАЯ ПРОБЛЕМА

Вот лучший способ решить эту проблему.

Шаг 1: Войдите в свою cPanel ( http://website.com/cpanel ИЛИ http://cpanel.website.com ).

Шаг 2: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ -> Выбрать версию PHP

Шаг 3: измените вашу текущую версию PHP: 5.6

Шаг 3: HIT «Установить как текущий» [ENJOY]