Ne pouvez pas utiliser l'interpréteur de ligne de commande
J'ai essayé d'exécuter simple code php dans php.
Quand j'ai exécuté la commande php -a
j'obtiens le message
Mode interactif est activé
Sans aucune place pour php entrée.
Mais je peut exécuter un code php par le biais de la commande php -r
.
par exemple:
php -r "echo 'Hello stackoverflow!';"
Bonjour stackoverflow!
- Cela ressemble à un bug; voir bugs.php.net/bug.php?id=48759 . Vous pouvez essayer de
phpsh
à la place. - ce n'est pas un bug mais une erreur de l'utilisateur, qui est également documentée dans ce rapport de bug. bon
make clean
résolu. - btw, le fait que vous êtes sur Windows est un détail important, car readline est une distribution gnu module. Gardez cela à l'esprit lorsque vous essayez de déboguer la fonctionnalité. php.net/manual/en/intro.readline.php (avec le lien), stipule essentiellement que "php -un" n'est pas disponible sur Windows. Il y a d'autres moyens bien.
- Ah oui, quelque obscure module qui ne devrait pas être à distance est nécessaire, en premier lieu n'est pas disponible, alors il échoue silencieusement, sans avertissement ou d'une indication. Brillant.
Vous devez vous connecter pour publier un commentaire.
Installer ceci:
puis essayez d'utiliser:
type
php -m
et assurez-vous que vous avez la readline module. Si vous ne le faites pas, vous ne serez pas en mesure de l'utiliser.http://www.php.net/manual/en/features.commandline.interactive.php
Il semble y avoir une compilation /erreur de liaison entre PHP et libreadline. Ceci est documenté dans PHP Bug #48759.
make clean
avant votre version final?php -m
liste readline activé la fonctionnalité? (Est intégrée à PHP avec l'option--with-readline
)Après, je suis fatigué de le compiler sur chaque ordinateur que j'ai utilisé PHPSH
(comme mentionné par joey-adams)
Il est beaucoup mieux que php -un (coloration de syntaxe et d'auto-complétion)
Installer python phpsh
regarder installez-php5-with-readline-support-sur-debian-wheezy
Vous êtes en mode interactif, mais sans une invite de commandes, puisque vous ne pouvez pas avoir readline mode disponible. Vous avez juste besoin juste de commencer à taper, et vos commandes seront évalués après que vous appuyez sur entrée. Il ne ressemble pas à tout ce qui se passe, mais si vous entrez, par exemple:
...vous aurez de sortie...
Si vous entrez embrassa blocs, ils sont évaluées lorsque vous appuyez sur entrée à la suite de la fermeture de
}
Notez que vous devez commencer avec
<?php
ou quoi que ce soit saisi ne sera pas évalué.Mise à jour (des années plus tard):
Sur une Red Hat (RHEL5) système d'exécution du fournisseur de sécurité patché PHP 5.3.3, j'ai rencontré un mode interactif, qui n'a pas de retour d'écho après la clôture des accolades.
Au lieu de cela, le tampon de sortie n'a pas été rincé jusqu'à ce que j'ai appuyé sur Ctrld. Effectivement, ce qui rend la séance interactive d'un emploi du temps. Insérer le code d'entrée, et Ctrld pour retourner toutes les sorties à la fois.
<?php
? Si non, il va juste l'écho de ce que vous avez entrée.Pour vérifier si vous avez readline module installé, tapez:
php -m | grep readline
Si rien ne s'affiche, installez readline module:
sudo apt-get install php5-readline
Après l'installation du module, vous pouvez vérifier de nouveau sa présence avec la commande précédente, que d'entrer en mode interactif avec:
php -a
Parce module readline n'est pas installé.
http://php.net/manual/en/features.commandline.interactive.php
C'est comment j'ai installer le module par la recompilation de php codes sources:
Trouver précédente commande de Configure:
Puis recompilez:
Vérifier si readline module installé:
Puis commencer à php shell Interactif:
Si vous utilisez Mac, puis installez-le Homebrew (http://brew.sh) puis tapez:
brew install phpsh
Et puis vous pouvez exécuter phpsh pour obtenir un shell interactif.
C'est ce que vous devriez voir:
php >
invite.:)
. Edit: et surtout si vous avez également posté une réponse. Poster ici les réponses doivent être collaboratifs, pas un concours!php -a
.