puk*_*puk 9 php error-handling file suphp
当我无法打开文件时,如何获得比'FALSE'更有意义的内容.
$myFile = "/home/user/testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
Run Code Online (Sandbox Code Playgroud)
当我使用该die语句时,can't open file返回给客户端,它几乎没用.如果我删除它,不会引发错误.如果我退货$fh就是FALSE.我尝试了本地文件名和绝对文件名.我的index.html文件位于我的孔文件夹的一个子文件夹中.此外,我正在使用suPHP与我试图写入的文件夹有权限0755(suPHP要求所有文件夹).
我如何找出问题的原因,或者至少在尝试打开文件之前查询它.
使用error_get_last()来捕获php中的(被抑制的)错误:
$f = @fopen("x", "r") or die(print_r(error_get_last(),true));
Run Code Online (Sandbox Code Playgroud)
fopen如果失败,应该提出E_WARNING.请参阅error_get_last或set_error_handler(*)以捕获它.除此之外,您可以使用file_exists和is_readable来检查文件是否丢失或是否存在另一个(可能是与权限相关的)问题.
(*)我认为总是设置一个将所有PHP错误转换为异常的错误处理程序是一种好习惯.
| 归档时间: |
|
| 查看次数: |
13187 次 |
| 最近记录: |