2016-08-15 3 views
-1

ich eine JavaScript-Datei mit Knoten (node.js) ohne Verwendung von Windows Terminal ausführen will, so ich versuche, PHP exec() Funktion zu verwenden, um die Datei auszuführen, aber es isn‘ t arbeiten.ausführen Knoten mit php

Was ist das Problem? Habe ich den falschen Windows-Befehl geschrieben? Habe ich den falschen vollständigen Pfad des Knotens geschrieben (ich habe ihn geschrieben, aber vielleicht ist es ein Backslash-Problem)? Windows kennt den Befehl "node" nicht?

console.log('Welcome to Node.js !');
<?php 
 
echo exec('C:\Program Files (x86)\nodejs\node.exe welcometonode.js');//not working 
 
echo exec('node welcometonode.js');//not working 
 
echo exec('C:\\Program Files (x86)\\nodejs\\node.exe welcometonode.js');//not working 
 
echo exec('C:\Program Files (x86)\nodejs\node welcometonode.js');//not working 
 

 

 

 
?>

+1

Funktioniert 'C: \ Programme (x86) \ nodejs \ node.exe welcometonode.js' auf ur cmd? Versuchen Sie auch den vollständigen Pfad von 'welcometonode.js' – Iceman

+0

Haben Sie versucht, bevor Sie den Befehl vom normalen Terminal ausführen, richtig? Wie Iceman sagt .. – Lucio

+0

Nein, wenn ich schreibe "Nope welcometonode.js" auf cmd, es funktioniert, aber es funktioniert nicht auf exec(), so änderte ich die Eingabeaufforderung:/ – pinug

Antwort

1

Windows kann nicht gut mit Leerzeichen funktioniert, wie Sie es sagen müssen es ist alles Teil des gleichen Befehl, müssen Sie den vollständigen Befehl Pfad in doppelte Anführungszeichen (Singles don einzuschließen‘ t Arbeit), dann ersetzen Sie Ihre Rückwärts Schrägstriche für Forward Schrägstriche, ist immer besser vorwärts in Ihren Skripten zu verwenden, auch, geben Sie den vollständigen Pfad zu den Node-Skript, sonst wird davon ausgegangen, dass das Skript in welchem ​​Verzeichnis Ihr PHP-Skript oder existiert php binary selbst läuft, so ist besser, Verwirrungen zu vermeiden, würde dies funktionieren:

exec("\"C:/Program Files (x86)/nodejs/node.exe\" \"C:/path/to/script/welcometonode.js\""); 
+0

es funktioniert Sir, danke für Informationen, vielen Dank! – pinug

Verwandte Themen