Programm Starten
#16
geschrieben 07. Oktober 2007 - 19:43
Anzeige
#17 _BigTim_
geschrieben 07. Oktober 2007 - 19:56
Btw.: Mein Error-Log spuckte nix aus.
#18
geschrieben 07. Oktober 2007 - 20:31
#19
geschrieben 07. Oktober 2007 - 21:42
habe kurz etwas zusammengestellt, wenn man einfach ein Programm aufrufen will und die Ausgabe (bei Kommandozeilenprogrammen) nicht in php weiterverarbeitet werden soll.
Aufgeteilt nach zwei Kriterien: Einmal, ob das Programm sichtbar ist, während es ausgeführt wird und zum anderen, ob man warten muss, bis das Programm sich selber beendet (wie bei der normalen Ausführung von Ping) bzw. manuell beendet wird (exit, STRG+C oder über einen Taskmanager).
Verwendet werden nur exec() und popen(). Außerdem wird zum Starten der Anwendungen noch das Shell Command start benutzt.
1. Kommandozeilenprogramme
exec('ping www.google.de');
oder
popen('ping www.google.de', 'r');
1.2 sichtbar, warten bis Prozess beendet wird
exec('start ping www.google.de');
1.3 sichtbar, keine Wartezeit
popen('start ping www.google.de', 'r');
2. GUI Programme (immer sichtbar, sonst wäre es unsinnig)
popen('notepad', 'r');
oder
exec('notepad');
2.2 keine Wartezeit
popen('start notepad', 'r');
Will man jetzt z.B. eine Anwendung starten, die nicht im PATH liegen kann man dies z.B. so tun:
popen('start C:\Programme\7-Zip\7zFM.exe', 'r');
Ist das Programm in einem Verzeichnis, dessen Pfad Leerzeichen besitzt, kann man es folgendermaßen starten:
popen('start /d"C:\Program Files\7-Zip\" 7zFM.exe', 'r');
Keine Gewähr auf Richtigkeit und "Sinnvolligkeit".
Gruß,
Stefan
#20 _BigTim_
geschrieben 08. Oktober 2007 - 12:35
Wird auch keine Fehlermeldung ausgegeben.
#21
geschrieben 08. Oktober 2007 - 18:10
prüf' mal die Einstellungen in deiner php.ini.
Ist safe_mode aus?
safe_mode = Off
Wie ist deine error_reporting Einstellung? Setz diese am besten auf
error_reporting = E_ALL
Werden nun Fehler angezeigt?
Gruß,
Stefan
#22
geschrieben 08. Oktober 2007 - 19:24
#23 _BigTim_
geschrieben 08. Oktober 2007 - 19:41
#24
geschrieben 09. Oktober 2007 - 12:06
Gruß,
Stefan
#25
geschrieben 09. Oktober 2007 - 14:11
Euch ist schon bewusst, dass - zumindest ist es bei exec so - man unter Windows keine Pfade mit Leerzeichen nutzen kann? Ja, auch das Einschließen in Anführungsstriche funktioniert nicht.
#26
geschrieben 09. Oktober 2007 - 15:22
Zitat (Witi: 09.10.2007, 15:11)
Euch ist schon bewusst, dass - zumindest ist es bei exec so - man unter Windows keine Pfade mit Leerzeichen nutzen kann? Ja, auch das Einschließen in Anführungsstriche funktioniert nicht.
Deswegen nutze ich das Working Dir von start. So ist es durchaus möglich, Pfade mit Leerzeichen zu verarbeiten.
start /d"C:\Program Files\7-Zip\" 7zFM.exefunktioniert bei mir unter Windows XP und Vista ohne Probleme.
Gruß,
Stefan
#27
geschrieben 09. Oktober 2007 - 18:45
<?php
exec('start /d"C:\Programme\7-Zip\" 7zFM.exe', 'r');
?>
Und das kommt raus
Zitat
#28
geschrieben 09. Oktober 2007 - 20:16
exec() braucht den Parameter 'r' nicht. Teste es mal so:
<?php
exec('start /d"C:\Programme\7-Zip\" 7zFM.exe');
?>
Gruß,
Stefan
Dieser Beitrag wurde von Diewie bearbeitet: 09. Oktober 2007 - 20:20
#29
geschrieben 09. Oktober 2007 - 20:22
Zitat
ich hab XAMPP installiert
Zitat
+ Apache 2.2.4
+ MySQL 5.0.41
+ PHP 5.2.2 + PHP 4.4.7 + PEAR
+ PHP-Switch win32 1.0 (please use the "php-switch.bat")
+ XAMPP Control Version 2.5 from www.nat32.com
+ XAMPP Security 1.0
+ SQLite 2.8.15
+ OpenSSL 0.9.8e
+ phpMyAdmin 2.10.1
+ ADOdb 4.94
+ Mercury Mail Transport System v4.01b
+ FileZilla FTP Server 0.9.23
+ Webalizer 2.01-10
+ Zend Optimizer 3.2.4
+ eAccelerator 0.9.5 für PHP 5.2.2 (comment out in the php.ini)
* System Requirements:
+ 64 MB RAM (RECOMMENDED)
+ 200 MB free fixed disk
+ Windows 98, ME
+ Windows NT, 2000, XP (RECOMMENDED)
---------------------------------------------------------------
Dieser Beitrag wurde von Ghost-Lion bearbeitet: 09. Oktober 2007 - 20:27
#30
geschrieben 09. Oktober 2007 - 20:44
Falls es immer noch nicht geht, füg' bitte die Ausgabe von
<?php phpinfo(); ?>an.
Gruß,
Stefan

Hilfe
Neues Thema
Antworten
Nach oben


