でそれを確認してください。 documentation page for register_shutdown_function()は、Apacheのような特定のサーバーでは、スクリプトの作業ディレクトリが変更されると述べています。
ファイルが.php
ファイル(DocumentRootの)ですが、Apacheサーバ(のServerRoot)のフォルダにどこ書かれてではなく、取得します。
これを防止するには、作業フォルダの変更のようなホットワイヤが必要です。 スクリプトが(最初の数行)の実行を開始したときに、何らかの形で実際の作業フォルダを保存する必要があります。 define()
で定数を作成すると、これに最適です。
define('WORKING_DIRECTORY', getcwd());
そして、あなたはこのようなシャットダウン機能を一部変更する必要があります。
function my_shutdown()
{
chdir(WORKING_DIRECTORY);
file_put_contents('test.txt', 'hello', FILE_APPEND);
error_log('hello', 3, 'test.txt');
}
register_shutdown_function('my_shutdown');
この方法では、作業フォルダを瞬時に関数が呼び出され、実際のものに戻って変更されますが、とtest.txt
ファイルはDocumentRootフォルダーに表示されます。
いくつかの修正:関数が宣言された後にregister_shutdown_function()
をコールすることをお薦めします。だからこそ私はの下にの下に関数コードを書きました。
この回答はうまくいきましたか?私はあなたの結果について聞いてくれることを願っています。 – Whisperity
ありがとうございます。遅く更新しました。 – IMB
Apacheのバージョンは重要ですか?関数のドキュメントに関するコメントのいくつかによるとそうだ。私は2つのWebサーバーと1つが動作し、もう1つは動作しません。そうするのは、MacではApache/2.2.24(Unix)です。もう一つはUbuntu 14.04のApache/2.4.9(Ubuntu)ではありません。 –