Allez a la fin d'une ligne en Php

Résolu/Fermé
Shinegans Messages postés 62 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 23 juin 2015 - Modifié par Shinegans le 2/06/2015 à 16:06
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 - 2 juin 2015 à 19:03
Bonjour,

je m'explique j'ai actuellement un script qui me permet de trouver un élement dans mon fichier php a l'aide d'une spécificité ce trouvant au début de la ligne hors je dois réécrire a la fin de cette dèrniere et ca taille est varriable

ma question est donc de savoir comment peut on "compter" le nombre de caractere avant le retour a la ligne ?

J'avais penser en trouvant la position du début de la suivante mais malheureusement je ne sais pas ce qu'elle contient :(

une autre solution serait de copier le contenue de la ligne et de le "coller" a la fin du fichier mais la encore je n'ai pas d'idée de solution pour cela

Ps ( Je vous remercie tous car depuis que j'ai débuté le php vous m'êtes d'une grande aide )

3 réponses

jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
2 juin 2015 à 16:24
Si ton but est d'aller écrire quelque chose à la fin d'une ligne particulière ...
le plus simple serait de lire ton document ligne/ligne (avec la fonction FILE du départ ^^ )
puis de boucler sur chacune de ces lignes...

Un truc du genre :
var $buffer="";
$file = "inputfile.txt";
$handle = fopen($file, "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        // lecture ligne par ligne...
        $buffer .= $line;
        $pos=strpos($line ,$test);
       if($pos !== false){
         $buffer .= " ce que tu veux ajouter !" ;
       }
    }
  fclose($handle);
}
// ensuite  tu y réécris le buffer
file_put_contents($file, $buffer);



1
Shinegans Messages postés 62 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 23 juin 2015 2
2 juin 2015 à 16:26
et ca va réécrire toute la ligne a sa place d'origine ?
0
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
2 juin 2015 à 16:40
Ca va réécrire tout le fichier avec à sa place d'origine la ligne modifiée.

PS: J'ai oublié les retours à la ligne dans la variable buffer ...
il faut modifier le code comme suit :

    while (($line = fgets($handle)) !== false) {
        // lecture ligne par ligne...
        $buffer .= $line;
        $pos=strpos($line ,$test);
       if($pos !== false){
         $buffer .= " ce que tu veux ajouter !" ;
       }
       $buffer .= "\n";
    }


PS2 : j'ai écrit de tête sans tester .. il y aura peut être des erreurs...
Dis le si c'est le cas.


Après.. il existe d'autres façons de faire ;...
Avec une REGEX par exemple .... mais comme tu ne nous à pas indiqué ce que contenait ton fichier ni quel était la chaine de caractères qui te permettais de choisir la ligne à modifier .. impossible de t'en dire plus.

Enfin bon.. testes déjà avec le code que je t'ai donné .. et dis nous si ça fonctionne.
0
Shinegans Messages postés 62 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 23 juin 2015 2
2 juin 2015 à 17:31
Merci pour ton aide j'ai réussis ce que je voulais faire :)

encore une fois grace a vous ... :D
0
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
2 juin 2015 à 19:03
Si tu as le temps, viens donc mettre ton code ici histoire que ça puisse servir à d'autres éventuellement.
@++
0
jordane45 Messages postés 38296 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 19 novembre 2024 4 704
2 juin 2015 à 16:09
Bonjour,


je m'explique j'ai actuellement un script qui me permet de trouver un élement dans mon fichier php a l'aide d'une spécificité ce trouvant au début de la ligne

Que contient ce script ?
De quelle forme est le fichier que tu souhaites traiter ?


PS:
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
0
Shinegans Messages postés 62 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 23 juin 2015 2
2 juin 2015 à 16:10
Re jordan45 je te montre ca de suite :)
0
Shinegans Messages postés 62 Date d'inscription lundi 1 juin 2015 Statut Membre Dernière intervention 23 juin 2015 2
Modifié par Shinegans le 2/06/2015 à 16:19
$texte=file_get_contents("data.js");
$pos=strpos($texte,$test);
 $fp=fopen("data.js", "r+");
 fseek ( $fp , +$pos,SEEK_CUR);


Quand je fais cela la variable test contient un element de début de ligne ( car c'est le seul élement dont je suis sur de l'unicité )
hors je dois écrire a la fin de cette dérniere ( pour ne pas l'éffacer )
0