2017-09-19 5 views
0

Je crée un simple script de numérisation Wi-Fi sur framboise pi. pour cela j'ai utilisé le serveur web de lighttp et php. Je peux exécuter php sans problèmes. mais quand je cours le manuscrit de coquille utilisant php il ne renvoient pas correctement les résultats. mon code est comme çaPHP shell_exec avec lighttpd sur Raspberry pi

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

mais quand je l'exécution de ce que je n'obtenir un SSID imprimer sur mon navigateur. mais quand je lance un script shell, je peux voir la liste complète des SSID sur mon terminal. Je pensais que c'est une sorte de problème de temps d'exécution et ajouter de la valeur de sommeil. mais cela ne réglera pas mon problème. Comment régler ceci. mon script shell contient rien d'autre que la commande pour analyser les SSID pour Raspbian

+0

Est-ce une faute de frappe réelle de 'ssidoutp' vs' ssidoutput'? –

Répondre

1

Je pense que vous êtes confronté à cela parce que "shell_exec" en php pas en mesure de lire la sortie multi-ligne. plus facile à penser est de modifier votre script pour imprimer tout SSID sur une seule ligne. peut être séparé par une virgule, puis traiter en php pour remplacer la virgule par une nouvelle ligne.

+0

Non, même quand j'ai ajouté | xargs aux résultats du script shell sont les mêmes, et quand j'exécute une commande comme ls -l il imprime correctement la sortie multi-ligne –

+0

pouvez-vous essayer '| wc -l' dans shell_exec pour savoir si le problème est avec le timing ou non. – Devidas

+0

il existe d'autres suggestions supprimer sleep et essayer d'exécuter votre commande directement à partir de shell_exec plutôt que d'encapsuler dans le script shell – Devidas