[PHP-users 13583] Re: system関数で出力が書き出せない

Masaki NOHTOMI php-users@php.gr.jp
Tue, 25 Feb 2003 22:19:57 +0900


宮部さん、有り難うございます
解決いたしました!

On Tue, 25 Feb 2003 21:29:31 +0900 (JST)
Mr/Ms Miyabe Satoshi <satoshi@randynetwork.com> wrote:

> 宮部@ランディ・ネットワークと申します。
> 
> From: Masaki NOHTOMI <narf.bi@alcnet.jp>
> Subject: [PHP-users 13580] Re: system関数で出力が書き出せない
> Date: Tue, 25 Feb 2003 20:34:14 +0900
> Message-ID: <20030225202921.A9CF.NARF.BI@alcnet.jp>
> 
> narf.bi> > > system("cvs add $term[1] > /tmp/cvsadd.txt 2>&1");
> 
> $term[1] に改行が入ってるんじゃないですか?
> 
> つまり、
> 
>     "cvs add test/untitled7.php"
> 
> が実行された後に、
> 
>     " > /tmp/cvsadd.txt 2>&1"
> 
> が実行されているのだと思われます。

おっしゃるとおりでした。
trim関数で改行を削除しましたところ
正しく書き出すようになりました。
以下正常に動いたスクリプトの全文を記しておきます。

#!/usr/local/bin/php
<?php
system("cvs up > /tmp/cvsup.txt 2>&1");
if(!($file = fopen("/tmp/cvsup.txt", 'r'))) {
        print("cannot open file");
        exit;
}
while (!feof($file)) {
        $line = fgets($file);
        $term = explode(" ", $line);
                if ($term[0] == '?') {
                $trimmed = trim($term[1], "\n");
                system("cvs add $trimmed > /tmp/cvsadd.txt 2>&1");
        }
}
fclose($file);
?>

-- 
納富正樹 / Masaki NOHTOMI <narf@alcnet.jp>