cs_brex
Messages postés10Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention10 février 2005
-
8 févr. 2005 à 14:30
cs_djagger
Messages postés536Date d'inscriptionlundi 5 mai 2003StatutMembreDernière intervention29 janvier 2009
-
10 févr. 2005 à 11:06
Bonjour,
j'explique mon problème : je développe une interface web en php sur un
serveur unix. Dans la partie administration de mon interface je
récupère des paramètres que je dois insérer dans plusieurs fichiers de
configuration.
Pour modifier ses fichiers j'utilise la fonction exec() qui me permet
d'executer une commande unix avec php. (j'utilise cette commande car je
trouve que la modification est plus pratique qu'avec la manipulation de
fichiers en php). Je suis arrivé à modifier 2 fichiers avec les
paramètres de cette façon:
mon code qui fonctionne:
# Récupère la ligne concernée $a
$a = exec('cat server.cfg | grep "\$all_sites"');
# Supprime les 2 derniers caractères et met la ligne dans $b
$b = substr($a, 0, -2);
# Ajoute le nom du serveur à la fin de $b
$b = "$b,"$nom_serveur");";
# Ajoute un \ devant les " pour les protéger
$a = addcslashes($a, '"');
$b = addcslashes($b, '"');
# Edition de la commande shell et execution
$cmd = "cat server.cfg | sed -e "s/$a/$b/" > server.cfg";
exec("$cmd", $tab, $rep);
Bref, mon problème arrive: dans cet exemple le fichier à
modifier "server.cfg" est dans le même répertoire que mon fichier php
qui execute le code. Mais je dois modifier 2 autres fichiers qui se
trouvent dans un sous-répertoire de mon arborescence à savoir :
Scripts/perl.conf et Scripts/Getlog.conf.
Je n'arrive pas a executer une commande si le fichier n'est pas dans le même répertoire
losque je lance la premiere ligne :
$a = exec('cat Scripts/server.cfg | grep "\$all_sites"');
il ne se passe rien et j'ai un code de retour d'erreur....
si quelqu'un a une idée pour résoudre mon problème...
cs_brex
Messages postés10Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention10 février 2005 10 févr. 2005 à 10:22
Non, ta commande ne correspond pas à ce que je veux, $all_sites n'est
pas une variable de ma page, c'est juste un string qui se situe dans
mon fichier server.cfg et que je recherche avec grep comme dans
l'exemple que je donne au début.
cs_brex
Messages postés10Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention10 février 2005 10 févr. 2005 à 10:59
lol je viens de trouver...je n'ose pas le dire
Comme toujours je me suis prit la tête sur un problème à la con.
C'était juste un problème de droits d'accès au sous-répertoire. Mon
répertoire /Scripts n'était pas accesible, maintenant ca marche.
Je te remercie beaucoup djagger pour m'avoir aider, désolé si c'était
pas mon code qui avait un problème mais moi qui est pas réfléchie