Php, fichier txt et retour au début de ligne
Eponyme
-
biboo_ Messages postés 1249 Date d'inscription Statut Membre Dernière intervention -
biboo_ Messages postés 1249 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Voilà mon problème. Je suis en train de créer un script php qui doit me permettre de modifier un fichier .csv, donc au format texte. Il me faut lire chaque ligne, en copier le contenu le modifier et le coller par dessus. Seulement pour que ça marche il me faut pouvoir revenir au début de chaque ligne. La fonction fseek($fichier,0) ne permet que de revenir au début du fichier et non au début de la ligne... Quelqu'un aurait il une idée? Merci d'avance.
Eponyme
Voilà mon problème. Je suis en train de créer un script php qui doit me permettre de modifier un fichier .csv, donc au format texte. Il me faut lire chaque ligne, en copier le contenu le modifier et le coller par dessus. Seulement pour que ça marche il me faut pouvoir revenir au début de chaque ligne. La fonction fseek($fichier,0) ne permet que de revenir au début du fichier et non au début de la ligne... Quelqu'un aurait il une idée? Merci d'avance.
Eponyme
A voir également:
- Php, fichier txt et retour au début de ligne
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
Je pense que 0 te faire revenir au caractère à l'indice 0, donc au début.
Il faudrait que tu trouves la position du saut de ligne (celui qui te permette de passer à la ligne), et tu fais un fseek($fichier, indiceDuSautDeLigne+1).
Il faudrait que tu trouves la position du saut de ligne (celui qui te permette de passer à la ligne), et tu fais un fseek($fichier, indiceDuSautDeLigne+1).
Tu as raison, c'est ce qui parait le plus logique. Les caractères de saut de ligne n'apparaissent pas dans mon fichier. Les fichiers sont soit générés (saut de ligne créé avec fputs($fichier, "\r\n" );), soit déposés en upload. J'ai les lignes les unes en dessous des autres. Le caractère de saut de ligne se situe-t-il normalement à la fin de la ligne ou au début de la ligne suivante? Le saut de ligne est-il écrasé par la nouvelle le ligne inscrite? Il faut savoir que la nouvelle ligne inscrite sera toujours plus longue que l'ancienne, donc la recouvrira totalement.
Ce que je pense faire c'est initialiser une variable $debut_ligne à 0, puis lire la ligne et copier le contenu, le modifier et le recopier avec un saut de ligne en ayant fait fseek($fichier,$debut_ligne) pour replacer le curseur. Après la copie dans le fichier le curseur sera à la fin du saut de ligne donc en théorie au début de la ligne suivante(si se dernier est à la fin de la ligne?). Avec ftell($fichier) j'obtiens la position du curseur et j'envoie la réponse dans la variable $debut_ligne qui sera modifiée de la même manière au fur et à mesure de l'avancement de ma boucle et à chaque fois j'utilise fseek($fichier,$debut_ligne) pour revenir.
Que penses-tu de ça?
Le tout est de connaître la position du saut de ligne et s'il est oui ou non écrasé par la copie comme les autres caractères...
Ce que je pense faire c'est initialiser une variable $debut_ligne à 0, puis lire la ligne et copier le contenu, le modifier et le recopier avec un saut de ligne en ayant fait fseek($fichier,$debut_ligne) pour replacer le curseur. Après la copie dans le fichier le curseur sera à la fin du saut de ligne donc en théorie au début de la ligne suivante(si se dernier est à la fin de la ligne?). Avec ftell($fichier) j'obtiens la position du curseur et j'envoie la réponse dans la variable $debut_ligne qui sera modifiée de la même manière au fur et à mesure de l'avancement de ma boucle et à chaque fois j'utilise fseek($fichier,$debut_ligne) pour revenir.
Que penses-tu de ça?
Le tout est de connaître la position du saut de ligne et s'il est oui ou non écrasé par la copie comme les autres caractères...
Je précise (si ça peut aider pour les sauts de ligne) que lorsqu'ils sont uploadés, les fichiers sont réalisés à partir d'exportation de fichier xls au format csv.
Merci encore
Merci encore