PHP - fonction escapeshellcmd()

PHP - fonction escapeshellcmd() - PHP - Programmation

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.

Reply

Marsh Posté le 25-08-2009 à 10:50:28   

Reply

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é.

Reply

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...

Reply

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.

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed