À propos de fonction exec() de PHP
J'ai besoin d'une petite information au sujet de l'exécution d'une .exe fichier à l'aide d'un script PHP. J'ai lu que l'on peut exécuter une .exe fichier en utilisant exec() ou passthru() ou echo system().
Est-il possible d'exécuter .exe fichier stocké sur ma machine windows dire sur C: répertoire ou le .exe fichier doit être stocké sur le serveur web le lancer via le script php.
Si j'ai donc besoin de fournir le chemin d'accès pour le .exe fichier à la fonction exec (), par exemple:
file.exe est stocké sur C:\Programs\mydocs\file.exe.
Puis-je conserver ce chemin dans une variable comme
$path = C:\Programs\mydocs\file.exe;
et de le transmettre comme echo exec($chemin);
Des charges de questions, je voudrais connaître le point de vue de la PHP profis.
Grâce
Il a clairement ne fonctionne pas de toute façon :). Mais le compilateur-comme-un-service de truc a tendance à s'appuyer sur le bac à sable...
OriginalL'auteur 125369 | 2011-11-25
Vous devez vous connecter pour publier un commentaire.
Non, votre exemple est une erreur de syntaxe
Oui, si vous citez la chaîne :-
OriginalL'auteur ajreal
PHP ne peut exécuter des fichiers sur le serveur où il est exécuté à partir d' (il doit aussi avoir le droit de permissions pour le faire).
Si vous essayez de faire ce que je pense que vous êtes en train de faire, ce qui serait de l'exécution d'une commande sur la machine de l'utilisateur, comment empêcher quelqu'un d'utiliser:
Et le format de leurs visiteurs, les lecteurs C?
Qui vous donnera une erreur de syntaxe, vous aurez besoin de citations:
Pourquoi ne pas en quoi?
Pourquoi ne pas formater le disque? Si c'est ce que le réalisateur veut, pourquoi pas?
J'ai édité la question, j'espère que c'est plus facile à comprendre mon point de vue.
Ah, point de pris. Merci.
OriginalL'auteur NullUserException
Votre question n'est pas tout à fait clair sur exactement où votre script PHP est en cours d'exécution. Si elle est en cours d'exécution sur un serveur web qui n'est pas votre poste de travail, puis tout simplement pas; vous ne pouvez pas ouvrir une application locale par le biais de PHP en cours d'exécution sur un serveur différent. L'application que vous souhaitez démarrer doivent être sur le même serveur que le script PHP.
Cela dit, si vous souhaitez exécuter une application sur votre poste de travail local ou sur le serveur, alors il est tout simplement:
exec('C:\path\to\program.exe');
Assurez-vous d'utiliser des guillemets simples ('C:\path\to\program.exe') ou doubles barres obliques inverses avec des guillemets doubles ("C:\path\to\program.exe"). Des guillemets simples sont légèrement plus efficace et la plus appropriée dans ce cas.
OriginalL'auteur Teekin
Vous pouvez stocker le chemin d'accès comme variable si vous utilisez la citation, dans une autre affaire (hors devis) qui va vous montrer l'erreur de syntaxe.
Essayer avec les deux prochaines syntaxe:
ou le guillemet double
OriginalL'auteur Jovanov Jordan
Vous ne pouvez exécuter le fichier, s'il réside sur le serveur de la machine et le processus de serveur dispose des droits appropriés pour accéder à/de l'exécuter. Vous ne pouvez pas exécuter des fichiers à distance sur une machine.
OriginalL'auteur Jauzsika
Selon le système de sécurité* sur le serveur, vous serez probablement en mesure de faire ce que vous voulez.
Compte tenu, toutefois, vous ne savez pas beaucoup au sujet de PHP syntaxe, je doute que vous devez être en jouant avec
exec()
.*comme suexec ou chroot d'apache, ou activant le mode sans échec sur PHP ou en l'exécutant en tant un service distinct (sur windows). Avez-vous remarque beaucoup de choses qui pourrait aller mal?
OriginalL'auteur Christian