题
我坚持,需要一个手。希望有人能帮助?
任何人有,为什么我在此代码收到“写入失败”什么想法?
$write_file = "/usr/home/public_html/php/users_v2.sql";
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");
if (is_writeable($write_file)) {
if ($write_handle === FALSE) echo 'Failed handle?!';
if (fwrite($write_handle, "Hi\n") === FALSE) echo "Failed write!\n";
}
fclose($write_handle);
预先感谢。
解决方案
通过使用OR运算符创建文件句柄时,您要退回取决于操作的布尔值。所以$ write_handle将包含true或false,而不是文件资源。一种更好的方式来打开文件进行写入并测试它的成功将是这样的:
$write_handle = fopen($write_file, 'w');
if ($write_handle === false)
{
die('Could not open file ' . $write_file);
}
此外,可以使用 file_put_contents
()
函数处理fopen()函数,fwrite()将和FCLOSE()为您服务。我只建议你只执行一次写入到同一个文件,因为这将是一个很大的开销,除非你通过FILE_APPEND
标志,它将为空每次写入文件。
其他提示
我已经看到了使用随处但问题是||死亡( “Couln't开放users_v2!”);
首先,我加入:
error_reporting(E_ALL);
看什么PHP是错误的错误报告。
$write_handle = fopen($write_file, "w") || die("Couln't open users_v2!");
fclose($write_handle);
返回为1的无效流处理错误和文件句柄没有它返回的文件句柄是“资源ID #X”。
更改行:
$write_handle = fopen($write_file, "w"); // || die("Couln't open users_v2!");
和您的代码工作正常。要去现在这个后php.net上。
不隶属于 StackOverflow