PHP file_get_contents не работает на CentOS - PullRequest
0 голосов
/ 30 января 2019

Я использую file_get_contents для очистки веб-страницы.Код очень прост и отлично работает на Windows, Mac и почти на всех основных дистрибутивах Linux на основе Debian.На CentOS сервер отправляет 410 Gone вместо.

Работает на CentOS 7 64 бит с PHP 7.3

<?php

$x = file_get_contents('https://m.apkpure.com/facebook/com.facebook.katana/download'); 

echo $x;

На моем MacOS On My Mac

На CentOS 7 On CentOS

Обе ОС обновлены и работают под управлением PHP 7.3

1 Ответ

0 голосов
/ 31 января 2019

Причина, по которой вы получаете эту ошибку, заключается в том, что вам нужно передать пользовательский агент (заголовки) при использовании https, или сервер отклонит запрос.

Чтобы упростить задачу, лучше использовать cURL,Вы можете увидеть, если функция ниже решает вашу проблему.Причина, по которой он работает на ваших Windows и Mac, заключается в том, что сервер может назначать заголовок / useragent для запроса, а linux - нет.

Способ исправить это на вашем компьютере с Linux - включить allow_url_fopen вваш php.ini

Попробуйте функцию ниже.Без необходимости включать allow_url_fopen

 function scraper($url) {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $url);
      $data = curl_exec($ch);
      curl_close($ch);
      echo $data;
    }

    scraper("https://m.apkpure.com/facebook/com.facebook.katana/download");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...