无法打开流:Codeigniter中的HTTP请求失败

时间:2014-08-25 11:26:42

标签: php codeigniter

我正在尝试使用Codeigniter从文件中获取字符串。

这是在我的控制器中:

$var = file_get_contents(base_url().'file/path/key_file.txt');

但是在调用上述内容时出现以下错误:

  

[function.file-get-contents]:无法打开流:HTTP请求失败!

它在我的本地服务器上工作正常,但当移动到实时Web服务器时,我收到上述错误。

该文件肯定存在于正确的位置,因为我可以直接访问它。

2 个答案:

答案 0 :(得分:0)

现在,大多数托管服务提供商会屏蔽furl_open参数,该参数允许您使用file_get_contents()。使用CURL更好,更安全。

<?php
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,base_url().'file/path/key_file.txt');
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
$query = curl_exec($curl_handle);
curl_close($curl_handle);
?>

请确保在您的系统中启用了PHP CURL。

答案 1 :(得分:0)

托盘getcwd()代替base_url()

$var = file_get_contents(getcwd().'/file/path/key_file.txt');

可能是您的服务器不允许从网址打开文件,或者更改您的php.ini

allow_url_fopen=1;