在PHP中,如何检查流资源(或文件指针、句柄或您想要调用它们的任何东西)是否可读或可写?例如,如果您面临这样一种情况,即您对资源是如何打开或创建的一无所知,如何检查它是否可读?如何检查它是否可写?
根据我所做的测试(仅针对使用PHP5.3.3的普通文本文件),当资源不可读时,fread()
不会在任何级别抛出任何错误。它只返回一个空字符串,但对于空文件也是如此。理想情况下,最好有一个不修改资源本身的检查。通过尝试读取资源来测试资源是否可读将更改指针的位置。
相反,当资源不可写时,fwrite()
不会在任何级别抛出任何错误。它只返回零。这稍微更有用一些,因为如果您试图向文件中写入一定数量的字节,而fwrite()
返回0,那么您就知道出了问题。但是,这仍然不是一个理想的方法,因为在我需要写入它之前知道它是否可写要好得多,而不是试图写入它并查看它是否失败。
此外,理想情况下,检查应该适用于任何类型的流资源,而不仅仅是文件。
这个是可能的吗?真的存在这样的东西吗?我一直找不到任何有用的东西。提前感谢你的回答。
https://stackoverflow.com/questions/5294305
复制相似问题