0

我有一个需要将一些 html 写入文件的 cron 脚本。

需要编写 HTML 的文件位于 public_html 目录中,而脚本位于该目录上方的不同位置。如果我手动 CHMOD 一切正常,但我不想将其保留为 0777 或继续手动操作,所以我想让我的脚本为我做这件事。

ob_start();

// build my HTML

$myHTML = ob_get_clean();

// CODE TO SAVE INTO INCLUDE <<<

$filename = 'home/public_html/file.php';

if (is_writable($filename)) {

    if (!$handle = fopen($filename, 'w')) {
         mail("support@domain.com", "Failed to create include", "Script failed to create include", "From: Support <support@domain.com>");
    exit;
    }

    // Write $somecontent to our opened file.
    if (fwrite($handle, ($myHTML)) === FALSE) {
       mail("support@domain.com", "Failed to create include", "Script failed to create include", "From: Support <support@domain.com>");
    exit;
    }

    fclose($handle);

} else {
    mail("support@domain.com", "Failed to create include", "Script failed to create include", "From: Support <support@domain.com>");
    exit;
}

不幸的是,它似乎不起作用。为什么?

4

2 回答 2

1

这看起来像一个绝对路径home/public_html/,你确定你没有拼错吗?
你可以

var_dump(file_exists($filename))

如果true返回,那么您可以尝试
使用

var_dump(file_put_contents($filename,$myHTML))

您可以检查您在其中写入了多少字节。
如果false返回,则表示您遇到权限问题

于 2012-10-05T06:51:48.610 回答
0

您必须先拥有对文件的写入权限,然后才能写入对权限的更改。

于 2012-10-04T13:25:01.830 回答