私は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
)からスクリプトから試しました。
おそらく私はお勧めしますが...あなたはfile_get_contents()を使用して新しい行を数えることはできませんか?または、file()を使用し、返された配列の要素を数えますか? –
'^ M'文字を処理する必要はほとんどなく、' wc -l </ path/to/CA_MA.csv'は行数だけをエコーします。なぜあなたはPHPの結果を見ていないshell_execは私の経験の外です。 tag = php shell_execを検索しようとしましたか?この点で私が見てきた別の関数呼び出し、つまりshell_execv()または同様のものがあることは確かです。がんばろう。 – shellter
パイプビュー(pv)ユーティリティを使って進捗状況を監視してみませんか? –