在 PHP 中,我如何检查流资源(或文件指针、句柄或任何你想调用的东西)是否可读或可写?例如,如果您遇到对资源如何打开或创建一无所知的情况,您如何检查它是否可读?你如何检查它是否可写?
根据我所做的测试(仅使用 PHP 5.3.3 的常规文本文件),fread()
当资源不可读时,不会在任何级别引发任何错误。它只返回一个空字符串,但它也对空文件执行此操作。理想情况下,最好有一个不修改资源本身的检查。通过尝试读取资源来测试资源是否可读将改变指针的位置。
相反,fwrite()
当资源不可写时,不会在任何级别引发任何错误。它只是返回零。这稍微有用一些,因为如果您尝试将一定数量的字节写入文件并fwrite()
返回零,您就知道出了点问题。但是,这仍然不是一个理想的方法,因为在我需要写入它之前知道它是否可写要比尝试写入它并查看它是否失败要好得多。
此外,理想情况下,检查应该适用于任何类型的流资源,而不仅仅是文件。
这可能吗?这样的事情存在吗?我一直找不到任何有用的东西。提前感谢您的回答。