2011-10-26 14 views
1

私はCSVにいくつの行が存在するか把握しようとしています。私は、STDOUTとSTDERRの両方を試してみたshell_execからの不正な返信

trim(shell_exec("cat /path/to/CA_MA.csv | perl -p -i -e 's/^M/\n/g' | wc -l")) 

... 2>&1):、私は戻って何を取得shell_exec()使っしかし

cat /path/to/CA_MA.csv | perl -p -i -e "s/^M/\n/g" | wc -l 

、:コマンドラインから

は、これは正しい値を与えます。対話型コンソール( php -a)からスクリプトから試しました。

+1

おそらく私はお勧めしますが...あなたはfile_get_contents()を使用して新しい行を数えることはできませんか?または、file()を使用し、返された配列の要素を数えますか? –

+0

'^ M'文字を処理する必要はほとんどなく、' wc -l <​​/ path/to/CA_MA.csv'は行数だけをエコーし​​ます。なぜあなたはPHPの結果を見ていないshell_execは私の経験の外です。 tag = php shell_execを検索しようとしましたか?この点で私が見てきた別の関数呼び出し、つまりshell_execv()または同様のものがあることは確かです。がんばろう。 – shellter

+0

パイプビュー(pv)ユーティリティを使って進捗状況を監視してみませんか? –

答えて

0

Count lines in a file using PHP

<?php 
    $file = "somefile.txt"; 

    $lines = count(file($file)); 

    echo "There are $lines lines in $file"; 
?> 

それも、 "DOS" の行末を持つファイルで動作します。

+0

Whoa。それは簡単ですか?この1つを試してみるのを待つことはできません。ありがとう。 –

+0

うわー。それは本当に簡単ですね。そう簡単に私はそれが起こったことはないと思います。 –

関連する問題