systemの戻りをob_start,ob_get_cleanで取得しようとしてハマるの巻
次のようなスクリプトを実行すると、
<?php $out = ''; //exec("cd", $out); ob_start(); system("cd"); $out = ob_get_clean(); header("Content-Type: text/html;"); // ←10行目 print phpversion() . "<br />\n"; print "hello!<br />\n"; print_r($out); ?>
次のエラーになります。
Warning: Cannot modify header information - headers already sent in hoge.php on line 10 5.2.2 hello! C:\xampp\htdocs\hoge
これは Windows PHP5.2.2 の話
Linux PHP5.2.0でも同様のエラーになりました。
変わりに
exec("cd", $out);
使えばエラーになりませんでした。
なんだこりゃ。
systemとob_startは相性が悪いようです。
# PHPのバグなのかな・・・