2013-10-09 6 views
0

comment puis-je exécuter un fichier ".exe" lancer ma classe PHP? Ou y a-t-il un autre moyen de le faire?Comment lancer un fichier ".exe" lancer la classe PHP

Je l'ai déjà utilisé

exec(); 
passthru(); 
fonction

mais son erreur me donner, mon code:

$path = "C:\Program Files\Softland\doPDF 7\dopdf.exe"; 

$result = passthru('$path 2>&1'); 

Erreur:

'$path' is not recognized as an internal or external command, operable program or batch file. 
+4

Ceci est super sécurisé. – Kermit

+2

'Throw' ou' through'? –

+0

Il suffit de convertir des guillemets simples en guillemets doubles. –

Répondre

2

Ce n'est pas une bonne pratique, mais. ...

$result = passthru($path.' 2>&1'); 

ou

$result = passthru("$path 2>&1"); 

vous devriez (comme vous pouvez le voir) mettre la variable $path en dehors des guillemets simples (qui empêchent l'évaluation et de substitution variable) ou double qoutes mis (qui permet la substitution variable)

+0

Woot! Enfin quelqu'un a montré la concaténation, je jure que personne ne sait comment concaténer les chaînes avec des variables ces jours-ci ... – SmokeyPHP

+1

@SmokeyPHP: évidemment, tous les utilisateurs ne peuvent le faire eux-mêmes: P – DonCallisto

1

Vous devez utiliser des guillemets doubles si vous voulez $ chemin à remplacer par la variable afin

$result = passthru("$path 2>&1"); 
0

le problème est que vous utilisez des guillemets simples, de sorte que la chaîne passée à la coquille était littéralement « chemin de $ 2> & 1 '. La substitution de variable ne se produit pas dans les guillemets simples, seulement en double, en PHP.

Vous devez donc soit concaténer la chaîne, soit la mettre entre guillemets.

$ resultat = passthru ("$ path 2> & 1");

Questions connexes