我坚持,需要一个手。希望有人能帮助?

任何人有,为什么我在此代码收到“写入失败”什么想法?

$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上。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top