Utilisation de PHP avec CVS

Fermé
John - 9 avril 2008 à 13:45
johnkro Messages postés 7 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 décembre 2010 - 9 avril 2008 à 17:27
Bonjour tout le monde,

je dois créer une interface Web en PHP pour centraliser des configurations. Seulement ces fichiers de configurations sont stockés en CVS pour pouvoir être relivrés durant la nuit.

Donc la question que je me pose, est-ce que je peux directement afficher et modifier mes fichiers de configurations (contenus dans le CSV) dans mon interface PHP?

Dois-je utiliser une API?

Merci d'avance

2 réponses

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 avril 2008 à 14:30
Bonjour, une API je ne sais pas s'il en existe une, mais tu peux toujours la faire toi même en PHP :)

Pour afficher ton csv, il faut déjà qu'il soit présent sur ton serveur, de manière à le lire en PHP (et l'afficher) comme suit :
   <?php
   $fp=fopen('nomdufichier.csv', 'r');
   while ($data=fgetcsv($fp, 1000, "," )){
      $nbre=count($data);
      for ($i=0; $i<$nbre;$i++){
         print $data[$i]."   -   ";
      }
      print "<br/>";
   }
  fclose($fp);


Voilà, à toi de mettre en forme correctement (mis en place d'input text pour les valeurs de chaque cellule ?) et de faire une fonction de relecture en PHP de ton tableau affiché.

Il faut savoir que le format CVS c'est rien d'autre (enfin je crois) que :
une ligne dans le fichier = 1 ligne de tableau excel
une colonne = 1 virgule dans une ligne
Donc tu as une suite de valeur sur une même ligne, séparées par un virgule à chaque fois.

Pour enregistrer tes changements par la suite il te suffirait donc de récupérer ton tableau et y appliquer une méthode de parsing :
chaque ligne de tableau = une nouvelle ligne à écrire dans ton fichier d'enregistrement
chaque ligne comprends une suite de valeur (valeur récupérée des champs input de la ligne du tableau), séparées par des virgules.

Par exemple tu pourrais afficher ton tableau dans une DIV pour pouvoir récupérer plus tard (suite à un clic sur un bouton situé dans ton interface par exemple) le contenu de cette div, et faire le parsing.

Tu vois ce que je veux dire ?
Essai déjà d'afficher ton fichier excel sous forme de tableau pou commencer, ensuite on pourra s'attaquer à la lecture et l'enregistrement des modifications.
0
johnkro Messages postés 7 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 décembre 2010 8
9 avril 2008 à 14:48
Euh merci de ta réponse, mais j'ai du mal m'exprimer.

Je ne manipule pas des fichiers CSV, mais des fichiers qui sont stockés dans une base CVS (Concurrent Version System)...
0
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 avril 2008 à 17:02
Ha ok, effectivement dans ton premier post tu as parlé de CVS et de CSV. Comme lire du CVS est courant je me suis dit que c'était la deuixème option ^^

Tu dois donc lire un fichier de configuration présent sur un serveur CVS alors, c'est bien ça?
A ce moment là, pour le traiter en PHP, c'est à dire dans ton interface, je dirais que tu pourrais avoir un bouton pour rappartrier le fichier de config depuis le serveur CVS sur ton serveur (où s'exécute ton php), puis lire le fichier rapatrier et l'afficher comme tu le veux.
Ensuite un bouton "enregistrer" qui re-enregistre le fichier de config dans un fichier du serveur, puis exécuter la commande de commit en CVS.

Pour ce qui est de faire les commandes de checkout / commit CVS, tu peux appeler des commandes système depuis PHP, donc je te conseillerais de faire des essais au préalable, voir si effectivement tu réussi à faire un checkout par exemple.
Comment lancer une commande externe en PHP ?
Tu peux regarder cette page : https://forum.hardware.fr/hfr/Programmation/PHP/executer-commande-externe-sujet_67083_1.htm
Ou chercher autre chose de plus complet sur google.
0
johnkro Messages postés 7 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 17 décembre 2010 8
9 avril 2008 à 17:27
Oui désolé de l'erreur de saisie que j'ai faite...

Niveau interface, je pense que je vais réussir à me décider entre les différents boutons lol

Le problème se trouve bien au niveau de la gestion/exécution des commandes cvs (checkout/commit). Après pas mal de recherche, je pense que je m'oriente vers l'utilisation de la fonction exec(). J'aurais aimé trouvé une API PHP gérant le CSV, mais apparemment ça n'existe pas.

Je vais continuer mes recherches sur le exec alors, en m'amusant avec les droits je pense, car je ne suis pas administrateur des machines et serveurs... C'est pour ça qu'une API m'aurait bien facilité la vie.

Merci
0