[Aide] Edition d'un fichier

chrysler5798
Invité n'ayant pas de compte PHPfrance

16 avr. 2014, 19:55

Bonsoir !

J'ai besoin d'aide.
J'ai mis une fonction fopen()
Je veux éditer un fichier avec "a+" mais si je met a+, aucune édition ne se fait !
J'ai essayé avec r et r+ et c'est pareil !
Bref, du coup j'ai essayé avec "w" et la ca marche ! Alors c'est super, mais cependant, à chaque fois que la fonction fopen est faites, mon fichier est réinitialiser !

J'ai besoin d'aide, merci d'avance !

Chrysler

Eléphanteau du PHP | 14 Messages

16 avr. 2014, 23:05

salut,

Quand tu dit "éditer" tu veux dire elever une valeur pour en mettre une autre?
ou mettre la nouvelle valeur à coté?

perso, moi quand j'utilise fopen() je mes tj fclose() pour fermer le fichier, mais si à la suite yah rien et que tu ferme
ton php ta pas besoin de fermer le fichier.

chrysler5798
Invité n'ayant pas de compte PHPfrance

17 avr. 2014, 08:08

Bonjour,

J'aimerais l'éditer a la fin du texte déjà existant.
Sans que le texte déjà existant soit supprimé.

Merci !

Chrysler

Mammouth du PHP | 2278 Messages

17 avr. 2014, 08:15

fopen avec "a+" signifie "append" ajouter et place le pointeur à la fin du fichier:
Si vous ouvrez le fichier avec le mode a ou a+, toutes les données que vous écrirez dans le fichier seront toujours ajoutées, sans se soucier de la position dans le fichier
(http://us2.php.net/manual/fr/function.fseek.php)
Il faudrait faire un fseek au début du fichier pour lire le début ou se servir de "c" (http://us2.php.net/manual/fr/function.fopen.php).
Je me demande s'il ne serait pas plus simple:
ouvrir en lecture seule
lire le fichier en mémoire (sans un tableau, ligne par ligne)
fermer
ouvrir le même en écriture seule (écrasement)
écdrire le tableau dans le fichier en le modifiant au fur à mesure
fermer
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

chrysler5798
Invité n'ayant pas de compte PHPfrance

17 avr. 2014, 17:32

Bonjour !
Merci pour votre réponse, cependant je débute en PHP, est ce que tu pourrais me faire le code ?
Voici le code :

Code : Tout sélectionner

//"STEAM_0:0:18811335" "99:z" $chaineAEcrire = "\n\"".$steamID."\" \"".$flags."\""; $context = stream_context_create(array('ftp'=>array('overwrite' => true))); $fileRead = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins_simple.ini", "a", false, $context); $dejaEcrit = false; while(!feof($fileRead)) { $ligne = fgets($fileRead); if (strpos($ligne, $steamID) !== false) { $dejaEcrit = true; } } if (!$dejaEcrit) { //Le steam n'est pas déjà renseigné $fileWrite = fopen("ftp://".$loginFTP.":".$passFTP."@".$adresseFTP."".$cheminFTP."/addons/sourcemod/configs/admins_simple.ini", "a", false, $context); if (!$fileWrite) { echo "<p>Impossible d'ouvrir le fichier distant pour écriture.\n"; exit; } else { /* Ecriture des données. */ fputs ($fileWrite, $chaineAEcrire); fclose ($fileWrite); } }
Voici l'erreur sur la page web :

Code : Tout sélectionner

Warning: fopen(ftp://[email protected]/csgo/csgo/addons/sourcemod/configs/admins_simple.ini) [function.fopen]: failed to open stream: FTP server reports 451 /csgo/csgo/addons/sourcemod/configs/admins_simple.ini : ajout/reprise non permis, veuillez recommencer in /home/sdgteam/www/vipcsgo/config/functions.php on line 126 Warning: feof(): supplied argument is not a valid stream resource in /home/sdgteam/www/vipcsgo/config/functions.php on line 130 Warning: fgets(): supplied argument is not a valid stream resource in /home/sdgteam/www/vipcsgo/config/functions.php on line 131

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

18 avr. 2014, 15:42

salut,

as regardé le chmod du fichier ?

@+
Il en faut peu pour être heureux ......

chrysler5798
Invité n'ayant pas de compte PHPfrance

18 avr. 2014, 17:38

Salut !

Oui, le CHMOD est à 777.