0

いくつかのhtmlをファイルに書き込む必要があるcronスクリプトがあります。

HTMLを書き込む必要のあるファイルはpublic_htmldirにあり、スクリプトはそのdirのすぐ上の別の場所にあります。手動で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 に答える