Maison développement back-end tutoriel php Exemple d'exécution de ligne de commande PHP

Exemple d'exécution de ligne de commande PHP

Mar 14, 2018 am 11:21 AM
php 命令行 执行

Cet article partage principalement avec vous les paramètres d'option du mode ligne de commande suivants fournis par le fichier binaire PHP (c'est-à-dire le programme php.exe). Vous pouvez interroger ces paramètres à tout moment via la commande PHP -h.

Usage: php [options] [-f] <file> [args...]
      php [options] -r <code> [args...]
      php [options] [-- args...]
 -s               Display colour syntax highlighted source.
 -w               Display source with stripped comments and whitespace.
 -f <file>        Parse <file>.
 -v               Version number
 -c <path>|<file> Look for php.ini file in this directory
 -a               Run interactively
 -d foo[=bar]     Define INI entry foo with value 'bar'
 -e               Generate extended information for debugger/profiler
 -z <file>        Load Zend extension <file>.
 -l               Syntax check only (lint)
 -m               Show compiled in modules
 -i               PHP information
 -r <code>        Run PHP <code> without using script tags <?..?>
 -h               This help
 args...          Arguments passed to script. Use -- args when first argument 
                  starts with - or script is read from stdin
Copier après la connexion

Le module CLI SAPI propose les trois méthodes différentes suivantes pour obtenir le code PHP que vous souhaitez exécuter :

Dans l'environnement Windows, essayez d'utiliser des guillemets doubles, et sous Linux environnement, essayez d'utiliser des guillemets doubles. Utilisez des guillemets simples pour terminer.

Laissez PHP exécuter le fichier spécifié.

php my_script.php 
php -f  "my_script.php"
Copier après la connexion

Les deux méthodes ci-dessus (avec ou sans le paramètre -f) peuvent exécuter le fichier my_script.php donné. Vous pouvez choisir n'importe quel fichier à exécuter. Les scripts PHP que vous spécifiez n'ont pas besoin d'avoir une extension .php. Ils peuvent avoir n'importe quel nom de fichier et n'importe quelle extension.

Exécutez le code PHP directement depuis la ligne de commande.

php -r "print_r(get_defined_constants());"

Lorsque vous utilisez cette méthode, veuillez faire attention à la substitution des variables shell et à l'utilisation de guillemets.

Remarque : veuillez lire attentivement l'exemple ci-dessus, il n'y a pas de marqueurs de début et de fin lors de l'exécution du code ! Avec le paramètre -r, ces marqueurs sont inutiles et provoqueront des erreurs de syntaxe.

Fournissez le code PHP qui doit être exécuté via l'entrée standard (stdin).

L'utilisation ci-dessus nous fournit des fonctions très puissantes, nous permettant de générer dynamiquement du code PHP et d'exécuter ces codes via la ligne de commande comme le montre l'exemple suivant :

$ some_application php | | sort -u >final_output.txt

Les trois méthodes ci-dessus pour exécuter du code ne peuvent pas être utilisées en même temps.

Comme toutes les applications shell, le binaire PHP (fichier php.exe) et le script PHP qu'il exécute peuvent accepter une série de paramètres. PHP n'a aucune limite sur le nombre d'arguments transmis à un script (le shell a une limite sur le nombre de caractères sur la ligne de commande, mais vous ne dépasserez généralement pas cette limite). Les arguments passés à votre script sont disponibles dans la variable globale $argv . Le membre indexé zéro de ce tableau est le nom du script (lorsque le code PHP provient d'une entrée standard et est exécuté directement depuis la ligne de commande avec le paramètre -r, le nom est "-"). De plus, la variable globale $argc stocke le nombre de variables membres dans le tableau $argv (et non le nombre de paramètres transmis au programme de script).

Tant que les paramètres que vous transmettez à votre script ne commencent pas par un symbole -, vous n'avez pas besoin de prêter trop attention à quoi que ce soit. Passer des paramètres commençant par - à votre script provoquera une erreur car PHP pensera qu'il doit gérer lui-même ces paramètres. Vous pouvez utiliser le séparateur de liste de paramètres pour résoudre ce problème. Une fois que PHP a analysé les paramètres, tous les paramètres après ce symbole seront transmis tels quels à votre script.

# 以下命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明:
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]
 
# 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明:
$ php -r "var_dump($argv);" -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}
Copier après la connexion

En plus de cela, nous avons une autre façon d'utiliser PHP pour les scripts shell. Vous pouvez écrire un script et commencer la première ligne avec #!/usr/bin/php, suivi du code PHP normal avec des balises de début et de fin PHP, puis configurer l'exécution correcte de la propriété de fichier. Cette méthode permet au fichier d'être exécuté directement comme un script shell ou un script PERL.

#!/usr/bin/php
<?php
    var_dump($argv);
?>
Copier après la connexion

En supposant que le fichier soit renommé test et placé dans le répertoire courant, nous pouvons faire ce qui suit :

$ chmod 755 test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
Copier après la connexion

Comme vous pouvez le voir, après avoir entré le script lors du passage paramètres commençant par - , le script s'exécute toujours normalement.

------------------------------------------------------ ------ ----------------------------------Options de commande-------- ------ -------------------------------------------- -

Formulaire 23-3. Options de ligne de commande

Nom de l'option

Description

-s

Afficher les fichiers sources avec coloration syntaxique .

Ce paramètre utilise le mécanisme intégré pour analyser le fichier, en générer une version HTML surlignée et écrire le résultat sur la sortie standard. Veuillez noter que ce processus ne fait que générer un bloc de balises HTML de [...] et ne contient aucun en-tête HTML.

Remarque : Cette option ne peut pas être utilisée avec le paramètre -r.

-w

Affichez le code source avec les commentaires et les espaces supprimés.

Remarque : Cette option ne peut pas être utilisée avec le paramètre -r.

-f

Analysez et exécutez le nom de fichier donné. Ce paramètre est facultatif et peut être omis. Il suffit de spécifier le nom du fichier à exécuter.

-v

Écrivez les informations de version de PHP, PHP SAPI et Zend sur la sortie standard. Par exemple :

$ php -v PHP 4.3.0-dev (cli), Copyright (c) 1997-2002 The PHP Group Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-c

En utilisant ce paramètre, vous pouvez spécifier un répertoire dans lequel le fichier php.ini est placé, ou spécifier directement un fichier INI personnalisé dont le nom de fichier n'a pas besoin d'être php.ini. Par exemple :

$ php -c /custom/directory/ mon_script.php $ php -c /custom/directory/custom-file.ini mon_script.php

-a

Exécutez PHP de manière interactive.

-d

Utilisez ce paramètre pour définir la valeur de la variable dans le fichier php.ini La syntaxe est :

-d configuration_directive. [ =value]

Exemple :

# L'omission de la partie valeur définira la directive de configuration donnée sur "1" $ php -d max_execution_time -r '$foo = ini_get("max_execution_time") ; var_dump($foo);' string(1) "1" # Passer une partie de valeur vide définira la directive de configuration sur "" php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); foo );' string(0) "" # La directive de configuration sera définie sur tout ce qui est passé après le caractère '=' $ php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); ) ;' string(2) "20" $ php -d max_execution_time=doesntmakesense -r '$foo = ini_get("max_execution_time"); var_dump($foo);' - e

Générer des informations étendues pour les débogueurs, etc.

-z

Charger la bibliothèque d'extensions Zend. Si seul un nom de fichier est donné, PHP essaiera de charger la bibliothèque d'extensions à partir du chemin par défaut de la bibliothèque d'extensions de votre système (sur les systèmes Linux, ce chemin est généralement spécifié par /etc/ld.so.conf). Si vous spécifiez un nom de fichier avec un chemin absolu, le chemin par défaut du système vers la bibliothèque d'extensions ne sera pas utilisé. Si un nom de fichier est spécifié avec un chemin relatif, PHP tentera uniquement de charger l'extension relative au répertoire courant.

-l

Ce paramètre fournit un moyen pratique de vérifier la syntaxe du code PHP spécifié. En cas de succès, la chaîne Aucune erreur de syntaxe détectée dans est écrite sur la sortie standard et le shell renvoie la valeur 0. En cas d'échec, les erreurs d'analyse seront écrites sur la sortie standard avec les messages d'erreur de l'analyseur interne et la valeur de retour du shell sera définie sur 255.

Ce paramètre ne détectera pas les erreurs fatales (telles que les fonctions non définies). Si vous souhaitez détecter les erreurs fatales, veuillez utiliser le paramètre -f.

Remarque : Ce paramètre ne peut pas être utilisé avec -r.

-m

En utilisant ce paramètre, PHP affichera les modules PHP et Zend intégrés et chargés :

$ php -m [ Modules PHP] xml tokenizer session standard posix pcre surcharge mysql mbstring ctype [Modules Zend]

-i Ce paramètre de ligne de commande appellera la fonction phpinfo() et imprimera le résultat. Si PHP ne fonctionne pas correctement, nous vous recommandons d'exécuter la commande php -i pour voir s'il y a des messages d'erreur affichés avant ou à l'endroit correspondant du tableau d'informations. Veuillez noter que le contenu de sortie est au format HTML, les informations de sortie sont donc plus volumineuses.

-r

Utilisez ce paramètre pour exécuter du code PHP sur la ligne de commande. Vous n'avez pas besoin d'ajouter les identifiants de début et de fin PHP (), sinon cela provoquerait des erreurs d'analyse de syntaxe.

Remarque : lors de l'utilisation de cette forme de PHP, des précautions particulières doivent être prises pour éviter les conflits avec les substitutions de paramètres de ligne de commande effectuées par l'environnement shell.

Exemple illustrant les erreurs d'analyse syntaxique

$ php -r "$foo = get_defined_constants();" Code de ligne de commande (1) : Erreur d'analyse - erreur d'analyse, inattendue '='

Le problème ici est que même si des guillemets doubles " sont utilisés, sh/bash implémente toujours la substitution de paramètres. Puisque $foo n'est pas défini, après avoir été remplacé, sa position devient un caractère nul, donc au moment de l'exécution, il est en fait lu par PHP. le code pris est :

$ php -r " = get_defined_constants();"

La méthode correcte consiste à utiliser des guillemets simples 'Dans une chaîne entre guillemets simples, les variables ne seront pas utilisées. . Restauré à sa valeur d'origine par sh/bash

$ php -r '$foo = get_defined_constants(); var_dump($foo);' { ["E_ERROR"]=> 1) ["E_WARNING"]=> int(2) ["E_PARSE"]=> int(4) ["E_NOTICE"]=> ]

Si vous utilisez un shell autre que sh/bash, vous pouvez rencontrer d'autres problèmes. Veuillez signaler tout bug que vous rencontrez ou envoyer un e-mail à phpdoc@lists.php.net 🎜>Vous pouvez également. rencontrez divers problèmes lorsque vous essayez d'introduire les variables d'environnement du shell dans le cheval ou d'utiliser des barres obliques inverses pour échapper des caractères. Veuillez faire attention lorsque vous l'utilisez

Remarque : - r Valide en CLI SAPI, invalide en CGI SAPI <.>

-h En utilisant ce paramètre, vous pouvez obtenir une liste complète des paramètres de ligne de commande et une brève description des fonctions de ces paramètres 🎜>

Le mode ligne de commande de PHP autorise les scripts PHP. pour s'exécuter complètement indépendamment du serveur WEB. Si vous utilisez un système Unix, vous devez ajouter une ligne de code spéciale au début de votre script PHP afin qu'il puisse être exécuté afin que le système sache quel programme utiliser. exécuter le script. Sur les plates-formes Windows, vous pouvez associer les attributs de double-clic des fichiers php.exe et .php, ou vous pouvez écrire un fichier batch pour exécuter le script avec PHP. n'affecte pas l'exécution du script sous Windows, vous pouvez donc également utiliser cette méthode pour écrire des scripts multiplateformes. Ce qui suit est un exemple de programme simple en ligne de commande PHP.

Exemple 23-1. Script PHP (script.php) essayant d'être exécuté à partir de la ligne de commande

#!/usr/bin/phpIl s'agit d'un script PHP en ligne de commande avec une option. peut être un mot que vous souhaitez imprimer avec les options --help, -h ou -? vous pouvez obtenir cette aide.

Dans le script ci-dessus, nous utilisons la première ligne de code spécial pour indiquer que le fichier doit être écrit par PHP pour être exécuté. Nous utilisons ici la version CLI, donc aucun en-tête HTTP ne sera généré. Lorsque vous écrivez des applications en ligne de commande en PHP, vous pouvez utiliser deux paramètres : $argc et $argv. La valeur de la précédente est un nombre entier supérieur au nombre de paramètres (le nom du script en cours d'exécution est également considéré comme un paramètre). Le second contient un tableau de paramètres dont le premier élément est le nom du script et l'indice est le nombre 0 ($argv[0]).

Dans le programme ci-dessus, nous avons vérifié si le nombre de paramètres est supérieur à 1 ou inférieur à 1. Même si le paramètre est --help, -help, -h ou -?, nous imprimons toujours les informations d'aide et affichons dynamiquement le nom du script en même temps. Si d'autres paramètres sont reçus, nous les affichons également.

Si vous souhaitez exécuter le script ci-dessus sous Unix, vous devez le rendre exécutable puis exécuter simplement script.php echothis ou script.php -h. Sous Windows, vous pouvez écrire un fichier batch pour cela :

@c:phpcliphp.exe script.php %1 %2 %3 %4

Recommandations associées :

Explication détaillée de l'exécution de la ligne de commande PHP

PHP appelle la ligne de commande Linux pour exécuter la compression de fichiers command_PHP tutoriel

Sur l'exécution de la ligne de commande PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

See all articles