2017-09-19 13 views
0

ラズベリーパイの簡単なWi-Fiスキャンスクリプトを作成しています。そのためにlighttp WebサーバーとPHPを使用しました。私は問題なしでPHPを実行することができます。 PHPを使ってシェルスクリプトを実行すると、結果が正しく返されません。私のコードは、このラズベリーパイのlighttpdでPHP shell_exec

<?php 
$ssidoutput = shell_exec('. /var/www/html/scanssid.sh'); 
sleep(3); 
echo "<pre>$ssidoutput </pre>"; 
#var_dump($ssidoutput); 
?> 

のようですが、私は私のウェブブラウザ上で1枚のSSIDプリントを得るとき、私はこれを実行します。シェルスクリプトを実行すると、私の端末上のSSIDの完全なリストを見ることができます。私はこれが何らかの実行時間の問題だと思って、睡眠の価値を追加します。しかし、それは私の問題を修正するつもりはありません。これを修正する方法。私のシェルスクリプトには、RaspbianのSSIDをスキャンするコマンドだけが含まれています

+0

これは 'ssidoutp'と' ssidoutput'の実際のタイプミスですか? –

答えて

1

私はPHPで "shell_exec"が複数行の出力を読み取ることができないため、これに直面していると思います。 一番簡単なのは、すべてのSSIDを1行に印刷するようにスクリプトを修正することです。カンマで区切ってphpで処理してカンマを改行してもかまいません。

+0

私は| xargsはシェルスクリプトの結果と同じです。そしてls -lのようなコマンドを実行すると、マルチライン出力が正しく出力されます –

+0

'|問題がタイミングにあるのかどうかを知るためにshell_execの 'wc -l'を実行します。 – Devidas

+0

睡眠を取り除き、シェルスクリプトでカプセル化するのではなく、shell_execから直接コマンドを実行しようとする別の提案があります。 – Devidas

関連する問題