@bigrusssianshark

Почему не работает file_get_contents?

Использую
<?php
$String = file_get_contents('url сайта');
echo $String;
?>

для того чтобы скопировать страницу сайта на свою страницу.
Но, к сожалению, с одним определенны сайтом такое не выкатывает - на выходе получаю просто белую страницу.

Я так понимаю, что на сайте какая-то защита стоит?
Если да, то как ее возможно попробовать обойти
  • Вопрос задан
  • 3788 просмотров
Пригласить эксперта
Ответы на вопрос 3
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Возможно сайт смотрит на наличие определённых HTTP-заголовков, например, чтобы был не пустой user-agent или какие-то другие заголовки.
Чтобы их задать не обязательно нужен curl (но рекомендую его), можно и для file_get_contents это сделать.
Пример ниже задаём Accept-language и User-Agent

$options = array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-Language: en-US,en;q=0.9,ru;q=0.8\r\n".
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.50 Safari/537.36 OPR/65.0.3467.16 (Edition beta)\r\n"
  )
);

$context = stream_context_create($options);
$String = file_get_contents($url, false, $context);
Ответ написан
Комментировать
@entermix
Включите вывод ошибок и посмотрите что там происходит.

error_reporting(E_ALL);
ini_set('display_startup_errors', 1);
ini_set('display_errors', '1');


https://www.php.net/manual/ru/function.error-repor...
Ответ написан
Комментировать
Exploding
@Exploding
wtf?
Потому что cUrl надо использовать.
Странно, что у вас
...с одним определенны сайтом такое не выкатывает...

Должно быть наоборот.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы