J'appelle un script PHP chaque fois qu'une page Web se charge. Cependant, il existe un paramètre que le script PHP doit exécuter (que je passe normalement par la ligne de commande lorsque je teste le script).
Comment puis-je transmettre cet argument à chaque fois que le script est exécuté lors du chargement de la page?
php
parameters
pseudo
la source
la source
Réponses:
Vraisemblablement, vous passez les arguments sur la ligne de commande comme suit:
... puis y accéder dans le script ainsi:
Ce que vous devez faire lorsque vous passez des arguments via HTTP (accès au script sur le Web) consiste à utiliser la chaîne de requête et à y accéder via le superglobal $ _GET:
Allez sur http://votredomaine.com/path/to/script.php?argument1=arg1&argument2=arg2
... et accès:
Si vous voulez que le script s'exécute quel que soit l'endroit d'où vous l'appelez (ligne de commande ou depuis le navigateur), vous souhaiterez quelque chose comme ce qui suit:
EDIT: comme indiqué par Cthulhu dans les commentaires, le moyen le plus direct de tester dans quel environnement vous exécutez est d'utiliser la constante PHP_SAPI . J'ai mis à jour le code en conséquence:
la source
empty($_GET)
.$_GET
est une valeur prédéfinie, donc je suis à peu près sûr qu'elle est toujours définie, mais vide s'il n'y a pas de paramètres GET définis.empty()
retournefalse
les chaînes et tableaux vides.$_GET
n'est en fait pas défini si le script est appelé dans un contexte de ligne de commande.empty()
le ferait rechercher des arguments de ligne de commande si le script est accédé à partir du Web sans chaîne de requête, lançant ainsi plus d'avis.PHP_SAPI === 'cli'
..htaccess
est un fichier Apache - Apache traite les requêtes entrantes avec les directives dans.htaccess
, puis appelle PHP pour générer la réponse à la requête. Donc, si vous êtes dans la ligne de commande,.htaccess
sera complètement ignoré. Si vous accédez à un script via le Web et que vous souhaitez ajouter de nouveaux arguments de chaîne de requête après avoir reçu la requête, cela se fait généralement avecmod_rewrite
. Si cela ne répond pas suffisamment à votre question, je vous suggère de poster une toute nouvelle question.Si vous voulez que tout le script s'exécute quel que soit l'endroit d'où vous l'appelez (ligne de commande ou depuis le navigateur), vous voudrez quelque chose comme ce qui suit:
Pour appeler à partir de la ligne de commande
chmod 755 /var/www/webroot/index.php
et utiliserPour appeler depuis le navigateur, utilisez
la source