PHP semble donner différentes valeurs de hachage lorsque j'utilise php -r <code>
sur la ligne de commande et lorsque j'exécute le fichier avec php <file>
, php -f <file>
, ou exécutez le code dans Apache.Résultats PHP différents avec l'option -r
Par exemple, une utilisation SHA1 sur la ligne de commande à l'aide -r
:
$ php -r "print sha1('$1S*90');"
77cd8b48ceca53e018f80536b0a44c5b6710425f
Lorsque je tente la même chose avec le fichier testSHA.php
ci-dessous:
<?php
print sha1('$1S*90');
?>
et l'exécuter sur la ligne de commande ou à l'intérieur d'Apache en utilisant mod_php5
:
$ php testSHA.php
201cb5aaa7d4db1a49d9be1f2c06d45e4c2a69f2
Stra Cependant, les hachages correspondent à l'aide des deux méthodes lorsque j'essaie une chaîne d'entrée différente telle que "123456789". Je ne pense pas que j'utilise un encodage ou un jeu de caractères différent dans les deux méthodes. J'ai également essayé d'utiliser MD5 et toujours obtenir différents hachages sur la ligne de commande avec -r
et '-f'.
Quelqu'un pourrait-il expliquer pourquoi les hachages seraient différents en utilisant les deux méthodes ci-dessus? Y at-il un moyen d'exécuter PHP sur la ligne de commande où je peux taper le code sans l'entrer dans un fichier, et voir la sortie comme si elle était exécutée dans un fichier/Apache? J'utilise la ligne de commande pour les tests d'extraits rapides lorsque le débogage de code pas à pas n'est pas configuré.
Merci. PS: J'utilise PHP 5.2.11 avec Suhosin-Patch 0.9.7 (cli) sur OpenSUSE 11.1.
Merci, Ben m'a manqué le Bash pourrait bien l'interpréter Je suis tombé dans le même piège que je cherche mes collègues :) Echapper aide quand il y a quelques caractères à s'échapper et nous connaissons les caractères que le shell peut interpréter Python et Ruby peuvent s'exécute en mode interpréteur sur la ligne de commande comme le fait Bash, échappant ainsi au problème de l'interpréteur de shell. Seriez-vous capable de savoir si PHP peut être exécuté de cette façon? Il pourrait être quelque chose comme l'outil de console Yii, yiic, sans dépendance Yii. – SSJ
'$ $ php -a' vous donne un mode interactif (un peu limité) –
Oui, j'ai essayé' $ php -a' dans le passé mais je n'ai pas compris comment afficher le résultat de l'exécution. J'ai fait des recherches après que vous l'ayez fait remarquer. Il semble que nous devons utiliser ' Php' avant que le code PHP puisse être exécuté. L'option '-a' est une solution réalisable. Je peux couper et coller et exécuter du code PHP multi-lignes avec des variables locales au lieu de m'inquiéter de l'échappement du shell et de l'appariement de guillemets avec l'option '-r'. Merci d'avoir partagé. – SSJ