[PHP-users 14967]標準入力が、リダイレクトからは受け取れるがパイプから受け取れない?
AM
iroha168 @ anet.ne.jp
2003年 4月 30日 (水) 11:58:15 JST
初めまして。シバと申します。
どなたかお力添えよろしくお願い致します。
PHPにて標準入力がリダイレクトで受け取れるが
パイプで受け取れない状態で困っています。
stdin.phpが標準入力をstdin.logに書き出す機能を持つとして
cat test.txt | stdin.php
ではstdin.logが空になっています。
stdin.php < test.txt
ではstdin.logにtest.txtの内容が書き出されます。
リダイレクトでファイルが書き出せるので、
スクリプトは問題ないように思います。(多分)
設定等を疑っているのですが、
何か心当たりのある方いらっしゃいますでしょうか?
・環境
Redhat7.3
PHP 4.3.1('./configure'
'--with-apxs=/usr/local/apache/bin/apxs'
'--enable-zend-multibyte'
'--enable-mbstring'
'--enable-mbstr-enc-trans'
'--enable-mbregex'
'--with-pgsql'
'--without-mysql')
・使用スクリプト
----------------------------------
stdin.php ----------------------------------
#!/usr/local/bin/php -q
<?php
//標準入力からの読込
$source = GetSTDIN();
$fp = fopen("stdin.log","a");
fseek($fp,SEEK_END);
fwrite($fp,$source);
fclose($fp);
//****************************************
//標準入力のデータ読込
// 引数 なし
// 戻値 標準入力データ文字列
function GetSTDIN() {
$stat = fstat(STDIN);
if ($stat["size"]>0)
return fread(STDIN, $stat["size"]);
else {
echo "STDIN is nothing.\n";
exit;
}
}
?>
----------------------------------------------------------------------------
----
----------------------------------
test.txt ----------------------------------
test1
test2
test3
----------------------------------------------------------------------------
----
PHP-users メーリングリストの案内