首頁 >後端開發 >php教程 >為什麼我的 PHP file_get_contents() 無法檢索外部 URL?

為什麼我的 PHP file_get_contents() 無法檢索外部 URL?

DDD
DDD原創
2024-12-06 02:46:14645瀏覽

Why is my PHP file_get_contents() failing to retrieve external URLs?

PHP ini file_get_contents 與外部 URL 的問題

file_get_contents() 函數允許 PHP 檢索文件的內容,包括位於外部 URL。但是,在某些情況下,使用者在嘗試存取外部 URL 時可能會遇到函數傳回空白結果的問題。

可能的 PHP.ini 配置衝突

此問題可能與 PHP.ini 配置有關,特別是那些限制外部 URL 存取的配置。要確定問題的根源,需要確定相關的設定選項:

  • allow_url_fopen:此選項控制 PHP 是否可以開啟 URL。檢查它是否設定為0(停用),這將阻止該函數存取外部內容。
  • allow_url_include:與allow_url_fopen類似,此選項允許PHP從URL讀取檔案。確保將其設為 1(啟用)。
  • safe_mode:安全模式限制某些 PHP 功能,包括 URL 存取。驗證 php.ini 中的安全模式是否已停用(設定為「關閉」)。

替代方法:使用cURL

如果無法修改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');

此函數初始化cURL句柄,設定必要的選項,並執行請求,傳回指定 URL 的內容。

以上是為什麼我的 PHP file_get_contents() 無法檢索外部 URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn