ファイル displaypage.php は次のようになります。
<?php
exec("php filetoexecute.php 2>&1",$output);
print_r($output);
?>
ファイル filetoexecute.php は次のようになります。
<?php
echo "test data";
?>
私の $output 配列の唯一のものはPHP_FCGI_CHILDREN is not valid
であり、オンラインであまり助けが得られません。なぜそこにあるのかはわかっています.STDERRをSTDOUTにリダイレクトしていますが、テキストtest data
が配列に書き込まれないのはなぜですか?
出力を取得したくない限り、それが機能することはわかっています。displaypage.php の行が次のようになっている場合、filetoexecute.php のコードは適切に実行されます (データベースに何かを書き込むとしましょう)。
exec("php filetoexecute.php >/dev/null");
もちろん、これは出力が何もダンプされていないためです。
これを行っているのは、filetoexecute.php を呼び出しているファイルとは異なる php セッション Cookie で動作させる必要があるためです。filetoexecute.php によって処理される数行のコードのセッションを切り替えることはできません。filetoexecute.php の結果が何であるかを知る必要があるため、それが生成するデータが必要です。
また、passthru()
私をまったく助けていないようです。
最後に、私は exec() や passthru() を使用するという考えに固執していません。私が望むことを達成するためのヒントをいただければ幸いです!