Decoupe mot dans fichier txt

patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006 - 5 avril 2006 à 17:08
patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006 - 10 avril 2006 à 17:00
salut,

voila je debute en php.
j'alimente un fichier txt identifiant (uid), et donc biensur avant d'écrire l'uid dans ce fichier txt je teste si il n'existe pas deja.
or si il existe je voudrais l'incrémentais mais je ne sais faire cela.
voici mon prog:
if (file_exists($fichier))
{
$ouvre=fopen("$fichier","a+"); // ouverture en lecture ( a+)
$uidtxt = file_get_contents('uid.txt');

if (FALSE===strpos($uidtxt,$uid)) {
fwrite($ouvre,$uid."\r\n"); // écriture de l'iud dans le fichier txt
}
else{
et ici je voudrais faire donc incrémenté mon uid si uidtxt=ptoto1 alors il devient ptoto2
}
}
#
else{ // le fichier n'existe pas
#
echo "Fichier introuvable ! Création de l'identifiant impossible.";
#
exit();
#
}
fclose($ouvre); // fermeture fichier

Merci pour l'aide.

10 réponses

raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
5 avril 2006 à 17:17
Hello,

Remplace $ouvre=fopen("$fichier","a+"); par $ouvre=fopen("$fichier.$i","a+");

tu met un $i à 1 avant et tu incremente ton $i comme ca, ton nom de fichier change tout le temps.
0
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
5 avril 2006 à 17:20
Zut, excuse moi, c'est pas du tout ca !! j'ai fai n'importe quoi ! mon dieu que je suis fatigué !
0
patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006
5 avril 2006 à 17:23
tu as reagi plus vite que moi car je m'a prété à te dire que ce n'était le nom de fichier mais le contenu du fichier.
excuse accepté :)

A+
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 avril 2006 à 17:26
Hello,

donne un exemple (court) de ce que contient ton fichier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
raven44 Messages postés 315 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 21 mars 2011 1
5 avril 2006 à 17:28
Arf zut voila malalam, va falloir que je me réveille si je veux pouvoir rivaliser avec ce qu'il va te donner comme solution .
0
patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006
5 avril 2006 à 17:48
en fait dans ce fichier je mets des ientifiants qui comportent maxi 8 caractéres c'est calculé suivant le nom et prenom comme ci-dessous:
$i="1";
$nomnaiss=strtolower($_POST['nomnaissance']);
$prenom=$_POST['prenom'];
$uidn=substr($nomnaiss,0,6);
$uidp=substr($prenom,0,1);
$uid="$uidp"."$uidn"."$i";

donc j'ai dans mon fichier ptoito1 par exemple et je veux mettre ptoito2 si il existe deja dans mon fichier.

j'espére etre plus claire car à force je m'y perds aussi
A+
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 avril 2006 à 09:06
Oui mais combien as tu de lignes? Comment sont organisés tes données dans ce fichier ? C'est ça qui est important.
0
patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006
6 avril 2006 à 10:36
salut,

dans mon fichier chaque mot et sur une ligne, et le nombre de ligne est impossible à definir car c'est un fichier txt referent pour mes codes et donc il peut allé trés loin en ligne.

Merci.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 avril 2006 à 12:42
Donc, tu récupères chaque ligne avec file (), par exemple. Ou bien tu fais un file_get_contents que tu explodes sur le retour chariot.
Tu auras donc par exemple, dans ce tableau, à la 1ère entrée : toto1


Et comme pseudo, tu auras toto, si j'ai bien pigé ?
Tu comptes la longueur de toto (strlen).
Tu comptes la longueur de toto1 (ou pas, d'ailleurs...).
Tu fais un substr sur toto1 à partir de la longueur de toto, jusqu'à la fin.
Si ce que tu obtiens est numerique (is_numeric), tu l'incrémentes de 1.
Puis, toto = toto + nouveau chiffre.
Tu mets cette nouvelle valeur dans ton tableau à la place de l'autre.
Tu fais ça pour toutes les valeurs que tu veux modifier.

Tu reconcatènes toutes les valeurs de ton tableau (ou implode avec \r\n).
Tu réouvres ton fichier en l'écrasant complètement, et tu y réécris la nouvelle chaîne obtenue.
0
patmagic Messages postés 8 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 10 avril 2006
10 avril 2006 à 17:00
je n'arrive plus à avancer, surtout pour recoller mon uid avec mon caractere incrémenter:

voici ce que j'ai fait:



foreach($lignes as $ligne) {

if ($ligne=$uid) {

$count=strlen($ligne); //je compte mes caratéres

print"$count"."
";

$derniercaract=substr($ligne,$count-1); //je prends le dernier

$derniercaractinc=$derniercaract+1; //je l'incrémente

print"info $ligne:"."$ligne"."
";

print"dernier carac: $derniercaract"."
";

print"dernier carac inc: $derniercaractinc"."
";

$bonuid="$uidcourt"."$derniercaractinc"; //je recupere l'uid et je lui met mon caratere incrementer

print"bon uid: $bonuid";





or j'arrive à un truc trop bizarre, j'ai bien mon mot mais j'ai pas mon incrementation.

Merci pour l'aide.
0
Rejoignez-nous