![](/img/trans.png)
[英]PHP file_get_contents() is not working on PLESK / CENTOS7 Server
[英]PHP file_get_contents not working on CentOS
我正在使用 file_get_contents 來抓取網頁。 代碼非常簡單,在 windows、mac 和幾乎所有基於 debian 的主要 linux 發行版上都可以完美運行。 在 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;
兩個操作系統都是最新的並且運行 PHP 7.3
您收到此錯誤的原因是您在使用 https 時需要傳遞用戶代理(標頭),否則服務器將拒絕請求。
為了讓使用 cURL 更容易,您可以查看以下功能是否解決了您的問題。 它適用於您的 windows 和 mac 的原因是因為服務器可能正在為請求分配標頭/用戶代理,而 linux 則沒有。
在你的 linux 機器上解決這個問題的一種方法是在你的 php.ini 中啟用allow_url_fopen
試試下面的功能。 無需啟用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");
執行這個命令:
sudo setsebool -P httpd_can_network_connect 1
重新啟動網絡服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.