est-il possible d'exécuter le code de ligne de commande Windows à partir de PHP? Mon code de ligne de commande Windows est le suivant:
<?php error_reporting(E_ALL); try { echo exec('C:\xampp\mysql\bin>mysqlbinlog --start-datetime="2011-04-21 10:31:44" c:\xampp\mysql\data\binlog\bin-log.000001 > c:\xampp\mysql\data\binlog\sql.txt'); } catch (Exception $e) { echo $e->getMessage(); }
6 Réponses :
Donnez-lui juste un essai. Ou si vous voulez un exemple de sable de sable, essayez d'exécuter
<?php echo exec("whoami");?>
J'utilise cet exécutif ('C: \ Xampp \ mysql \ bin> mysqlbinlog --Start-datetime = "2011-04-21 10:31:44" C: \ xampp \ mysql \ data \ binlog \ bin-log.000001 > sql.txt ');
Vous pouvez soit vérifier votre php.ini pour voir si EXED () est autorisé. Ou mettre error_rporting (e_all); au début de votre script pour voir quelle est l'erreur est.
Si vous ne pouvez pas exécuter la commande directement dans Exec (), ce que vous pouvez faire est de créer un fichier de commandes avec la commande et de la placer sur la racine de votre site Web. Ensuite, il suffit de courir:
Je pense que vous voulez dire Notez le remplacement du Le C: \ xampp \ mysql \ bin> mysqlbinlog code> n'est pas une commande. p>
c: \ xampp \ mysql \ bin \ mysqlbinlog code>. p>
> code> dans un
\ code>. p>
> code> est uniquement visible dans l'invite de commande sous forme de séparateur (pour les yeux), mais vous ne devez pas l'utiliser comme celle-ci dans une commande à moins que vous n'essayez de rediriger votre sortie. (que vous faites à nouveau plus tard dans la ligne). Donc, il suffit de remplacer ce premier
> code> dans un
\ code> et votre commande s'exécutera. P>
Obtenez-vous des erreurs? Vous ne devriez pas récupérer d'eccho de l'exécutant dans ce cas. Vous redirigez la sortie sur SQL.TXT. Après avoir remplacé le> in \ avant mysqlbinogog code> il a fonctionné ici comme prévu. (Un SQL.TXT est créé) Si vous souhaitez la sortie dans le navigateur, vous devez supprimer le
> C: \ xampp \ mysql \ data \ binlog \ sql.txt code>.
J'utilise WAMP et la seule solution était les suivantes: p>
au panneau de commande / outils administratifs / services, recherche de wampapache64, httpd ou quelque chose comme ça. Sur l'onglet Connexion Cochez le bouton "Autoriser le service d'interaction avec le bureau" P>
J'espère que cela vous aidera! P>
Je n'ai trouvé rien de même dans le panneau de commande.
Si vous êtes capable d'exécuter vos commandes manuellement à partir de la ligne de commande, mais pas via WAMP, que l'utilisateur Le service Apache est exécuté, comme ne dispose pas des autorisations nécessaires pour exécuter vos commandes et vos binaires (ni interagir avec le bureau si C'est une interface graphique). P>
Par défaut, Service Apache exécuté sous Compte d'utilisateur: Modifiez-le à votre utilisateur personnalisé (utilisateur avec les droits d'administration) en suivant les étapes ci-dessous, P>
codage heureux: -) p>
J'ai dû utiliser l'administrateur
@Black Vous pouvez utiliser les informations d'identification de l'administrateur
Après avoir utilisé l'administrateur, je n'ai pas pu démarrer le service
Essayez d'utiliser le processus PHP de la ligne de commande en tant qu'administrateur. Stackoverflow.com/a/67910311/6862516
exécuter traverser au dossier doc_root p> lecture avec la commande ci-dessous, P> < pré> xxx pré> si doc_root a un dossier public différent p> Cela a fonctionné bien pour moi. P> Assurez-vous que le php.exe est ajouté au chemin de l'environnement. P> p>
Que se passe-t-il quand vous essayez?
Quel est le problème? Vous pouvez l'utiliser n'importe qui des deux.
Je pense que vous pouvez utiliser
shell_exec code> fonction pour y parvenir ... si System () et EXEC () ne fonctionne pas