J'essaie de définir une variable qui devrait être accessible depuis l'extérieur de PHP. Idéalement, cela devrait être une variable locale, mais les variables d'environnement sont également les bienvenues.Exporter une variable de PHP à shell
D'abord, je l'ai essayé putenv()
, mais cela ne donne aucun résultat:
$ php -r "putenv ('PHP_TEST = string');" ; echo $ PHP_TEST
$
Quand j'appelle getenv()
du même script - il en résulte la bonne valeur 'string'. mode sans échec est désactivé, mais le manuel dit préfixe « PHP_ » est vital avec sécurité = sur donc je l'utilise juste au cas où :)
J'essaie system()
ou shell_exec()
:
$ php -r "shell_exec ('PHP_TEST = chaîne');" ; echo $ PHP_TEST
$ php -r "shell_exec ('export PHP_TEST = chaîne');" ; echo $ PHP_TEST
$
est-il une solution? quelle pourrait être la raison? J'utilise Ubuntu Linux 9.10 "Karmic", mais le serveur FreeBSD donne le même résultat.
Merci! Cela rend la question claire. Mais alors, comment 'getopt' (et d'autres programmes non intégrés) parviennent à exporter des variables dans le contexte externe? (Par exemple 'getopt' exporte' $ OPTIND') – kolypto
Vous confondez l'externe '/ usr/bin/getopt' qui ne le fait pas et ne peut pas le faire avec le' getopts' intégré qui le fait. –