exec()
The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.
vraagje: je hebt een USB seriele rs232 poort op je machine ?
de normale seriele devices zijn ttyS0 t/mttyS3
Je kan de werking van de echo onder php ook eerst testen naar file:
echo -e '\xFF' > test.log
test.log komt dan in de $HOME (meestal /home/apache) van apache terecht waar apache mag schrijven. Dan weet je in ieder geval dat het werkt vanuit php.
@SanThe
Dan moet er een dimmer aangestuurd worden die mijn verlichting aanzet (hier wil ik een webinterface omheen bouwen)
Het hele pad naar echo gebruiken maakt ook niet uit (als ik echo exec('echo test'); doe, dan werkt dat ook gewoon)
En de c staat er nog gewoon voor.
@Chris
Als ik het commando in een terminal uitvoer, dan krijg ik geen enkele output, maar mijn verlichting gaat wel aan.
@Karl
Ja, dat werkt gewoon.
@John
Het is inderdaad een usb->rs232. echo -e '\xFF' > test.log lijkt niet te werken.
Ik heb géén /home/apache of iets dergelijks, en ik kan dit bestand ook niet vinden.
Als ik er echo -e '\xFF' > /home/daan/test.log van maak, dan werkt het trouwens ook niet.
@Daan "echo -e '\xFF' > /home/daan/test.log" kan niet werken omdat apache (de owner van de webdeamon/webserver) mag niet schrijven in /home/daan.
- check of apache inderdaad owner is van de webserver/webservice door in de console/terminal te doen: ps -ef |grep http
Dat moet iets van deze output opleveren:
apache is dus eigenaar en zal het bestand test.log proberen te schrijven.
voer dat in php uit zonder pad specs: echo -e '\xFF' > test.log
Zoek vervolgens het bestand met:
find / -name test.log -print
Als het bestand niet gevonden wordt dan is er misschien een php error.
Die kan je vinden in /var/log/httpd/error_log !
Je kan in een andere console/terminal een tail -f doen op dit bestand:
tail - f /var/log/httpd/error_log
en alle php fouten komen netjes voorbij!
in principe moet apache wel in zijn home directory een test.log kunnen schrijven. Het lukt mij ook niet, ik krijg ook een sh: test.log: Permission denied