Get meaningful information when fopen() fails (PHP/suPHP)(当 fopen() 失败时获取有意义的信息 (PHP/suPHP))
问题描述
当我无法打开文件时,如何获得比FALSE"更有意义的信息.
How do I get something more meaningful than 'FALSE' when I can't open a file.
$myFile = "/home/user/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
当我使用die
语句时,can't open file
返回给客户端,几乎没用.如果我删除它,则不会引发任何错误.如果我返回 $fh
,它是 FALSE
.我尝试了本地文件名和绝对文件名.我的 index.html
文件位于我的hole 文件夹的子文件夹之一中.此外,我将 suPHP 与我试图写入的文件夹一起使用,以获得 0755
的权限(suPHP 要求所有文件夹都使用此权限).
When I use the die
statement, can't open file
is returned to the client, and it is almost useless. If I remove it, no error is raised. If I return $fh
it is FALSE
. I tried both local file name and absolute file name. My index.html
file is in one of the sub folders of my hole folder. Furthermore, I am using suPHP with the folder I am trying to write to having a permission of 0755
(suPHP requires this for all folders).
我如何找出出现问题的原因,或者至少在尝试打开文件之前查询它.
How do I figure out why there was a problem, or at least query it before trying to open the file.
推荐答案
fopen
如果失败,应该引发 E_WARNING.请参阅 error_get_last 或 set_error_handler(*) 来捕捉它.除此之外,您可以使用 file_exists 和 is_readable 以检查文件是否丢失或存在其他(可能与权限相关的)问题.
fopen
should raise an E_WARNING if it fails. See error_get_last or set_error_handler(*) to catch it. Other than that you can use file_exists and is_readable to check whether the file is missing or there's another (probably permission-related) problem.
(*) 我认为始终设置一个将所有 PHP 错误转换为异常的错误处理程序是一种很好的做法.
(*) I consider it good practice to always set an error handler that turns all PHP errors into exceptions.
这篇关于当 fopen() 失败时获取有意义的信息 (PHP/suPHP)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:当 fopen() 失败时获取有意义的信息 (PHP/suPHP)


基础教程推荐
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 使用 PDO 转义列名 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01