2016-09-17 18 views
0

私は、PHPを上書きするのではなくファイルとして実行することが可能かどうかを知りたいですか?phpファイルの書き込み時にキャッチ

私は、喜んでファイルにログを記録するためのsendmail -Xオプションを設定しました。 PHPファイルを指すように設定すると、実際のファイルに追加されます。とにかく(私はUbuntuを使用しています)ファイルを実際に書き込むのではなく実行するために使用していますか?

ファイル現在(私が実行したいもの)読み:

<?php 
$pointer = fopen('php://stdin', 'r'); 

file_put_contents('/home/www/dev1/log.log',$pointer); 
?> 
+0

私はまだあなたが言っていることを理解していません。どんなファイルに書いていますか? – SOFe

+0

私はMySQLデータベースにログを記録するが、効果的にsendmailにこのスクリプトを実行させるためにこのスクリプトを交換したいと思う。私は-Xのルートを試していました。 – UKUser35

+0

ああ、 'sendmail'コマンドでこのPHPファイルのSTDINに書き出したいのですか? – SOFe

答えて

0

あなたがバッシュを使用している場合は、process substituionを試すことができます。

sendmail other-args -X >(php your-php-file.php) 

これはあなたのPHPにコンテンツを渡します直接ファイルのstdin。

stream_get_contentsなどの1回限りの機能を使用すると、プロセスが終了するまで何も書き込まれないため、stream_copy_to_streamを使用してください。

+0

私はbashを使用しているとは思わない。私はデフォルトのubuntuを使っています。 – UKUser35

+0

@AntonyHattonデフォルトのubuntuは何ですか?ほとんどのLinuxマシンの通常のログインシェルはbashです。 – SOFe

+0

残念ながら、これは私のためには機能しませんでした。 – UKUser35

関連する問題