CHMOD 0777并返回0644

时间:2012-10-04 13:19:39

标签: php

我有一个需要将一些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;
}

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

2 个答案:

答案 0 :(得分:1)

这看起来像绝对路径home/public_html/你确定你没有误导它吗?
你可以

var_dump(file_exists($filename))

如果返回true,则可以尝试使用 与

var_dump(file_put_contents($filename,$myHTML))

您可以查看您在其中写入的字节数 如果返回false,则表示您有权限问题

答案 1 :(得分:0)

在对权限进行更改之前,您必须具有对文件的写入权限。