[PHP-users 12125] Re: PHPでパイプ

KAWAI,Takanori php-users@php.gr.jp
Tue, 10 Dec 2002 14:10:14 +0900


川合孝典です。

----- Original Message -----
From: "ml" <ml@naviokinawa.com>
To: <php-users@php.gr.jp>
Sent: Tuesday, December 10, 2002 11:26 AM
Subject: [PHP-users 12120] PHPでパイプ


> お世話になります。
>
> Perlで
> open(FP, "exec /usr/bin/perl --help |");
>
> というのをPHPで表現するにはどうしたらよいでしょうか?
> 一番後ろのパイプ?を上手く表現したいのですが・・・
Perlでも、ちょっと妙な気はしますが...(execするかなぁ...)
素直(?)にpopenすればよいのでは?

<引用>
commandで与えられたコマンドを fork()して実行し、そのプロセスへの
パイプをオープンします。
</引用>
とドキュメントにもありますし。

[ex.]
<HTML>
<BODY>
<?php
$FP = popen("/usr/bin/perl --help","r");
$i=0;
while(!feof($FP)) {
    $input .= ++$i .':' . fgets($FP, 1000).'<BR>';
}
pclose($FP);
echo $input;
?>
</form>
</BODY>
</HTML>

[結果]
1:
2:Usage: /usr/bin/perl [switches] [--] [programfile] [arguments]
3: -0[octal] specify record separator (\0, if no argument)
4: -a autosplit mode with -n or -p (splits $_ into @F)
5: -C enable native wide character system interfaces
6: -c check syntax only (runs BEGIN and END blocks)
7: -d[:debugger] run program under debugger
8: -D[number/list] set debugging flags (argument is a bit mask or alphabets)
9: -e 'command' one line of program (several -e's allowed, omit programfile
(以下略)

===================================================
川合 孝典 (Hippo2000)
   DBI日本語メーリングリスト管理人、Kansai.pm所属
   kwitknr@cpan.org GCD00051@nifty.ne.jp
   http://member.nifty.ne.jp/hippo2000、http://www.hippo2000.info/
perldocの日本語化ならperldocjp:もちろん参加者募集中!
  http://sourceforge.jp/projects/perldocjp
===================================================