Laufen ein .exe-Datei mit der input-Parametern von PHP-web-Seite
Ich versuche momentan, um eine ausführbare Datei zur Ausführung in einem PHP-web-Seite (derzeit mit exec()
). Das Programm nimmt zwei Argumente, die beim ausführen von der Befehlszeile aus; ich bin mir nicht sicher, was die beste Methode wäre um es zum laufen mit PHP.
Insbesondere, die .exe ausgeführt werden können von der Befehlszeile aus verwenden Sie die syntax:
my_program.exe input_file_name.txt /output_file_name.txt
Das Programm verarbeitet die Daten in der input-Datei und setzt die Verarbeitung in der Ausgabe-Datei. Dies alles funktioniert von der Kommandozeile (in Windows). Die .exe-Datei in Visual Basic geschrieben (es war nicht von mir geschrieben).
Ich weiß, ich kann in der Regel geben exec()
einen parameter, indem Sie so etwas wie:
exec('my_program.exe "example input parameter"');
wenn die .exe-Datei wird geschrieben, Eingabe von argv()
, die ich getan habe, zum testen. Ich habe versucht ein paar Dinge wie:
$argument = "C:\wamp\www\web_dev\test\input.txt /C:\wamp\www\web_dev\test\output.txt";
exec('C:\wamp\www\web_dev\test\my_program.exe $argument');
Was nicht geklappt hat. (Ich bin derzeit versuchen zu bekommen, es funktioniert auf meinem localhost, falls das relevant ist..)
Glaube ich, seit dem .exe macht die ganze Arbeit für das öffnen, schreiben und schließen der input-und output-Dateien, die ich nur brauchen, um herauszufinden, wie man code eine PHP-Befehl, das Programm auszuführen, das in der entsprechenden Mode.
Ich habe gesehen, ähnliche threads zu diesem einen, so hoffe ich, dass ich mich nicht wieder zu Fragen, was; ich war nicht in der Lage zu finden, ein thread, ganz bezogen auf diese situation.
Edit: wenn es hilft, den gesamten Umfang arbeite ich hin, ist die Erstellung einer web-Schnittstelle, die es einem Benutzer ermöglicht, eine Datei hochzuladen, dann ruft die ausführbare Datei, die ich bereits gegeben habe (das wurde mir mit der Befehlszeile-Anweisungen, die oben erwähnt) auf und erzeugt eine Ausgabedatei für den Nutzer mit der Verarbeitung der Daten.
InformationsquelleAutor Nik | 2012-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
grundlegende PHP-syntax-Fehler: du verwendest die falsche Anführungszeichen. Verwenden Sie doppelte Anführungszeichen statt.
einfache Anführungszeichen (
'
) NICHT interpolieren Variablen in den string. Sie versuchen, passieren Sie eine wörtliche$
,a
usw... als argument, nicht den Wert der variable.Ach, ich bin immer noch nicht ausgegeben. Es friert nicht mehr ein (bevor es weiter zu laden, auf unbestimmte Zeit, jetzt hört es sich nach einem moment), aber meine output.txt die Datei ist immer noch leer, so scheint es, dass die .exe-Datei ist nicht ordnungsgemäß aufgerufen..
escape-Zeichen"\":
"C:\\wamp\www\\web_dev\\test\\my_program.exe $argument"
oder verwenden Sie /. Ansonsten interpretiert er \t als Tabulator-Zeichen in doppelten Anführungszeichen.noch besser, nur normale Schrägstriche. php höflich übersetzen der OS-spezifische version für Sie. Beseitigung der mühsamen Flucht
Hey, es hat funktioniert!! Danke Jungs 😀
InformationsquelleAutor Marc B