Externes Programm mit PHP-Befehl öffnen
hund
- php
0 Cheatah0 jobo0 hund0 Der Martin
0 hund0 jobo0 Der Martin
0 hund0 Der Martin
0 hund
Hallo.
Folgende Frage:
Wie öffnet man mit einem PHP-Befehl ein externes Programm?
Ich habe ein kleines Mail-Postfach entwurfen und möchte nun, dass sich (z.B. bei einen Klick auf einen Link) z.B. MS Outlook öffnet.
Befehle wie exec(), popen(), sytem(), passthru(), etc. habe ich schon ausprobiert, aber nichts funktioniert, bzw. vielleicht wende ich sie auch falsch an (hab es bisher so gemacht: exec("...URL von Outlook...")
), wovon ich mal ausgehe, dass das falsch ist... :-)
Hi,
Ich habe ein kleines Mail-Postfach entwurfen und möchte nun, dass sich (z.B. bei einen Klick auf einen Link) z.B. MS Outlook öffnet.
ist auf Deinem Server überhaupt Outlook installiert? Wenn ja, sitzt jemand vor der Kiste, der das Programm dann auch bedienen würde?
Cheatah
Hallo,
shell_exec("calc.exe") sollte eigentlich "funzen" (*dows vorausgesetzt).
Gruß
jobo
shell_exec("calc.exe") sollte eigentlich "funzen" (*dows vorausgesetzt).
Danke, funktioniert. Aber doch sicher nur mit exe-Dateien, oder? Bekommt man auch sowas wie pdf-Dateien oder doc-Dateien auf?
Hallo,
shell_exec("calc.exe") sollte eigentlich "funzen" (*dows vorausgesetzt).
Danke, funktioniert. Aber doch sicher nur mit exe-Dateien, oder?
jein - mit allen Dateien, die Windows als "ausführbar" betrachtet. Das sind üblicherweise die Extensions .exe, .com, .bat, .cmd und evtl. noch .pif.
Bekommt man auch sowas wie pdf-Dateien oder doc-Dateien auf?
Hast du's probiert? - Ich nicht, aber die Bezeichnung shell_exec und auch die Beschreibung im PHP-Manual deuten darauf hin, dass die Anweisung an eine Shell zur Ausführung übergeben wird. Die Windows-Shell -also in der Regel der Explorer- löst das ja selbständig auf; theoretisch müsstest du also auch Dokumente auf diese Weise mit der zugeordneten Anwendung öffnen können. Versuch's einfach.
Wenn nicht, musst du genauso vorgehen wie der Windows-Explorer: In der Registry nachschlagen, welche Anwendung mit dem Dateityp verknüpft ist, und die in der Registry zum Öffnen des Dokuments hinterlegte Befehlszeile ausführen. Das stelle ich mir mit PHP aber sehr umständlich vor, weil es über den üblichen Einsatzbereich hinausgeht.
So long,
Martin
Hast du's probiert?
ja, probiert hab ich ich es. Aber funktioniert nicht. Der Browser versucht zu laden und lädt und lädt und nix passiert.
Hallo,
ja, probiert hab ich ich es. Aber funktioniert nicht. Der Browser versucht zu laden und lädt und lädt und nix passiert.
Naja, "ausführen" und die Rückgabe im Browser anschauen sind ja auch zwei paar Schuhe. shell_exec() tut genau das, was draufsteht: es führt einen Befehl auf der Shell aus. Mit echo shell_exec("dir"); bekommst du den verzeichnisinhalt aufgelistet. Ein PDF könntest du vielleicht eben mit acrobat.exe -f sonstewas.pdf oder so ähnlich öffnen. Das schöne ist ja, du kannst es vorher in der shell ausprobieren.
Gruß
jobo
Hi,
Hast du's probiert?
ja, probiert hab ich ich es. Aber funktioniert nicht. Der Browser versucht zu laden und lädt und lädt und nix passiert.
was der Browser tut, ist ja noch ein sekundäres Problem. Wird denn das gewünschte Programm überhaupt aufgerufen? - Und du suchst das aufgerufene Programm auch da, wo PHP läuft, also auf dem Host, wo der Webserver läuft?
So long,
Martin
Wird denn das gewünschte Programm überhaupt aufgerufen? - Und du suchst das aufgerufene Programm auch da, wo PHP läuft, also auf dem Host, wo der Webserver läuft?
Au, Anfängerfehler! Hab das Programm natürlich auf C:\ laufen. Muss ich mal bei Gelegenheit ändern. Kann ein Grund sein, warum es nicht läuft. Das Programm startet nicht.
Danke für den Hinweis!
Hi,
Und du suchst das aufgerufene Programm auch da, wo PHP läuft, also auf dem Host, wo der Webserver läuft?
Au, Anfängerfehler! Hab das Programm natürlich auf C:\ laufen.
an den richtigen Pfad habe ich noch gar nicht gedacht, denn wenn das gesuchte Programm im PATH (Suchpfad) liegt, wird die Shell es finden.
Mir ging es darum, ob der Webserver auf derselben Maschine läuft, oder ob du aus Unkenntnis der Zusammenhänge versuchst, auf dem Server bei deinem Webhoster ein Programm zu starten.
Das Programm startet nicht.
Hmmm. Aber PHP wartet wohl immer noch drauf, dass der erzeugte Prozess sich zurückmeldet. Das ist eigenartig, denn selbst wenn das gesuchte Programm nicht gefunden wird, sollte der Aufruf sofort zurückkehren.
So long,
Martin
Mir ging es darum, ob der Webserver auf derselben Maschine läuft, oder ob du aus Unkenntnis der Zusammenhänge versuchst, auf dem Server bei deinem Webhoster ein Programm zu starten.
Die Seite is noch nicht online, d.h. mein Servername ist localhost, bereitgestellt von XAMPP.
Also wie gesagt, mit shell_exec() läuft es, wenn das Prgramm auch auf dem Server installiert ist. Sonst nicht.