首頁 > 後端開發 > php教程 > 為什麼 PHP 的 `file_get_contents` 無法取得外部 URL,如何修正?

為什麼 PHP 的 `file_get_contents` 無法取得外部 URL,如何修正?

Barbara Streisand
發布: 2024-12-24 20:07:12
原創
811 人瀏覽過

Why Does PHP's `file_get_contents` Fail to Fetch External URLs, and How Can I Fix It?

PHP file_get_contents 無法取得外部 URL 內容

嘗試使用 PHP file_get_contents 函數擷取遠端 URL 的內容時(例如file_get_contents('http://example.com')),您會遇到結果為在特定伺服器上始終為空。但是,使用相同的函數存取本機檔案會傳回預期結果。

php.ini 中的可能原因

空結果可能歸因於 PHP 中的配置設定php.ini 檔案。

解決方案

至要解決此問題,請檢查php.ini 檔案中的以下特定設定:

  • allow_url_fopen:確保啟用此設定(設定為1 或開啟)。它控制 PHP 是否可以使用檔案系統函數存取 URL。
  • allow_url_include:如果您想要阻止 PHP 直接包含遠端 URL,請停用此設定(設定為 0 或關閉)。
  • file_get_contents.allow_url_fopen:如果存在,此設定將覆蓋allow_url_fopen 專門用於 file_get_contents。確保已啟用(設定為 1)。

如果這些設定未按描述設置,請相應地調整它們並重新啟動 PHP 伺服器以應用變更。

替代方法

如果您無法修改php.ini 設定或更喜歡不同的方法,您可以模仿使用cURL 取得file_get_contents,如下例所示:

function get_content($URL){
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_URL, $URL);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}

echo get_content('http://example.com');
登入後複製

以上是為什麼 PHP 的 `file_get_contents` 無法取得外部 URL,如何修正?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板