我有一个写文件的PHP扩展,
stream = php_stream_open_wrapper(file_path, "a", REPORT_ERRORS | IGNORE_URL_WIN, NULL);
if (stream == NULL)
{
zend_error(E_WARNING, "Fail to open file stream of %s!", file_path);
}
上面的代码有时会因Permission Denied
错误而失败,我需要通知最终用户。
到目前为止,我可以使用REPORT_ERRORS
标志,让PHP直接在流函数中打印错误,
<b>Warning</b>: Unknown: failed to open stream: Permission denied in <b>Unknown</b> on line <b>0</b><br />
<b>Warning</b>: Fail to open file stream of /opt/rasp/log/plugin/plugin20171219.log! in <b>Unknown</b> on line <b>0</b><br />
由于PHP中似乎不存在perror / GetLastError
之类的函数,因此我无法执行snprintf
并构建自定义错误消息
那么如何将这两条消息合并为一条呢? (这更有意义)