在CentOS和nginx上使用函数"file_get_contents"时遇到问题。
error_reporting(E_ALL);
$file = "/srv/http/php/cms/extern/ip/pc.htm";
if (@is_file($file) === false) {// it is true;
$result['error'] = 'no file';
}
if (@fopen($file, "r") === false) { // it is true
@fclose($htmlFilePath);
}
$htmlContent = file_get_contents($file); // return null
我在浏览器上打开htm文件,它就可以工作了。我在谷歌上搜索了一些东西,然后在php.ini中验证了选项:
allow_url_fopen = On;
禁用功能列表中没有包含这一点;
然后我重新启动nginx和centOS。但是它不起作用------!!
请帮忙告诉bug在哪里。谢谢
我以前也遇到过同样的问题。我通过添加编码字符集解决了这个问题。在我的例子中,我添加了UTF-8字符集。可能是浏览器对文件进行了编码,但nginx和centOS没有。
- 在头标记之间添加编码元标记
如果不起作用,我建议也用完整的URL试试。PHP不会将URL识别为相对URL。