php exec() n'est pas de l'exécution de la commande

J'ai essayé d'utiliser exec() avec 'whoami' pour vérifier si cela fonctionne, et j'ai obtenu le résultat de

nt authority\system

Maintenant, j'ai besoin d'exécuter un .exe fichier avec les paramètres de php via exec() fonction.

J'ai essayé ceci dans invite de commande et en fait il exécute le programme avec les paramètres donnés. C'est l'exemple de la commande.

NOTE le fichier exe obtient 3 entrées (dossier, nom_fichier, report_file_nmae)

> ..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml

Mais quand je lance cette commande à partir de php fichier:

exec('..\..\some_file.exe folder="C:\path_to_folder" param=1.xml report=2.xml');

rien ne se passe. C'est la première fois que je suis en utilisant la fonction exec (), donc je ne suis pas familier avec les détails. Quel est le problème?

J'ai essayé d'utiliser:

  • \\ au lieu de \
  • escapeshellarg() sur le répertoire
  • ajouté "" autour répertoire des noms de dossier

Pas de chance

Addendum:

echo exec($command)  //echos < .... why?

ou

exec($command, $output);
print_r($output);        //Array()

J'ai même changé la permission sur le fichier pour le contrôle total à tous les utilisateurs.
Si je l'appelle le programme de command prompt, je peux voir l'icône apparaissant à côté de l'horloge pour une seconde.

Mais le même appel de php ne sera même pas appeler le programme.

Modifier

Même exec('notepad.exe'); ne fonctionne pas. Quelque chose doit être fait avec php configurations peut-être?

  • Assurez-vous que PHP dispose de l'autorisation d'exécution de ce fichier.
  • comment puis-je m'assurer.....
  • Honnêtement, je ne sais pas comment le faire dans Windows puisque c'est la permission système est réel incompatible.
  • quelle est la ..\..\some_dir au début, pour ?
  • Avez-vous essayé d'obtenir la sortie de exec()? Essayez quelque chose comme $out = array(); exec('your_command 2>&1',$out);; bien que la 2>&1 est un linux chose.
  • Oui, il me donne <....pourquoi?
  • ne pas obtenir de vous remettre en question
  • Vous avez besoin de la production complète, non seulement la dernière ligne. Voir: php.net/manual/en/function.exec.php ... Cela signifie que vous devez avoir un tableau comme dans mon exemple.
  • ma question est au sujet de la syntaxe de la commande: il ressemble: relative-path-to-folder<space>full-path\file.exe... et je ne suis pas ce que la première partie - comment ça fonctionne à partir d'invite de commandes ?
  • Oh, je vois, c'était une faute de frappe, j'ai ÉDITÉ...tnx
  • Briser ce problème un peu. Si vous spécifiez le chemin complet vers le fichier EXE, ça fonctionne? Si vous permettre à tout utilisateur sur le système à exécuter, cela fonctionne t'il?
  • mais si, à partir de l'invite de commande, il fonctionne sans chemin d'accès complet, avez-vous la chose qui est la raison? Parce que l' .exe est relative à partir de ce chemin d'accès de fichier php qui appelle la méthode exec()... Ce que vous voulez m'ajouter...dites-le moi
  • Pas de, du chemin d'accès complet n'a pas changer quoi que ce soit.
  • Oui, vous pourriez être la raison parce que le serveur de l'utilisateur exécute à partir d'un autre dossier!

InformationsquelleAutor Brian | 2013-07-29