PHP - fonction escapeshellcmd() - PHP - Programmation
Marsh Posté le 25-08-2009 à 11:09:18
Il semble donc que le traitement du joker "*" ne soit pas tout à fait standard, ce qui ne m'étonne guère. La solution consiste donc à ne pas utiliser cette bidouille, mais à avoir un chemin propre et carré.
Marsh Posté le 25-08-2009 à 11:22:34
Je ne vois pas en quoi l'utilisation de la fonction escapeshellcmd(), surtout quand le contenu est transmis à un programe externe ?
En revanche, si quelqu'un peu m'expliquer la raison de ce phénomène, cela m'intéresse énormément...
Marsh Posté le 25-08-2009 à 11:28:16
La gestion du joker "*" dans les chemins est différente selon les systèmes. D'une version de DOS à l'autre, il y a déjà quelques petites différences, et entre DOS (que l'on appelle maintenant Windows en mode console) et UNIX, il y a pas mal de différences. C'est comme ça. On n'y peut rien. C'est pour des raisons "historiques". Donc, il faut éviter l'étoile.
Marsh Posté le 25-08-2009 à 11:51:25
Je suis d'accord avec cela, mais le phénomène est constaté avec les autres caractères gérés par escapeshellcmd() (le résultat est identique si on utilise & au lieu de *). D'autre part, les deux tests sont effectués dans le même environnement windows serveur 2003 ayant la même version.
Marsh Posté le 25-08-2009 à 10:50:28
Bonjour, je recontre des diffcultés avec la fonction escapeshellcmd() et différentes versions de PHP.
1. Si je l'utilise avec une version Apache 2.0 / PHP 4.3.6 :
escapeshellcmd("test*" ) => Me renvoie : "test\*"
2. En revanche, si je l'utilise avec Apache 2.2 / PHP5.2.3
escapeshellcmd("test*" ) => Me renvoie : "test "
Il se trouve que pour mon traitement après, c'est bloquant.
Les tests réalisés ont été effectués sur un serveur windows 2003.
Merci d'avance pour votre aide.