Nom d'un fichier en php
kiki
-
kiki -
kiki -
salut !!
j'ai encore une question...
je voudrais fair un bout de script qui incrémente automatiquement les noms des fichiers au fur et a mesure qu'on les créent (mais en fait, les fichiers et leurs noms ne sont pas vus par les utilisateurs du sites et sont faient pour les stockées) . Par exemple, il a le nom c000001.doc et quand on en créé un autre il est à c000002.doc et ainsi de suite jusqu'a arriver au nieme enregistrement : c00000n.doc !!!
oulala...... je sais pas si j'ai été compréhensible !!!
en fait, je voudrais le mettre dans ce script mais je ne vois pas comment
<?php
//cnx à la bd
$bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
//séléction de la bd
mysql_select_db(courrier2, $bd) or die("erreur de connexion à la base");
// on récupere le no de l'expediteur
$query1 = "SELECT noexp FROM table1 WHERE nomexp = '$nomexp'";
$result1 = mysql_query($query1) or die ("La requete 1 a echoué ");
$lineexp = mysql_fetch_array($result1,MYSQL_NUM);
$noexp = $lineexp[0];
$nomexpediteur = $lineexp[1];
//on récupere le no du destinataire (table destinataire)
$query2 = "SELECT * FROM destinataire WHERE stedest = '$stedest'";
$result2 = mysql_query($query2) or die ("La requete 2 à échoué");
$linedest = mysql_fetch_array($result2);
$nodest = $linedest[0];
$nomdest = $linedest[1];
$stedesti = $linedest[2];
$adress = $linedest[4];
$villedest = $linedest[5];
$cpvilledest = $linedest[6];
//on récupere le no du modele
$query3 = "SELECT * FROM modele WHERE nommodele = '$modele'";
$result3 = mysql_query($query3) or die ("La requete 3 à échoué");
$linemod= mysql_fetch_array($result3);
$nomodel = $linemod[0];
$nommodel = $linemod[1];
//on incrémente le nom du fichier et on récupere le nom du fichier
//on insert les données dans la table table2
$query4 = "INSERT INTO table2 (date, objet, personnel, refnodest, refnomodele, refnoexp) VALUES ('$date', '$objet', '$personnel', $nodest, $nomodel, $noexp)";
$result4 = mysql_query($query4) or die("erreur");
$chaine = $date.";".$objet.";".$nomexpediteur.";".$stedesti.";".$adress.";".cpvilledest.";".$villedest.";".$nomdest."\n";
mysql_close();
$f=fopen("C:\modele\fusion.txt","w");
fputs($f,"date;objet;nom_auteur;nom_entrep;adresse,code_postal;ville;nom_dest\n");
fputs($f,$chaine);
fclose($f);
$ff=fopen("C:\modele\fich.txt","w");
fputs($ff,$nommodel."\n");
fclose($ff);
//$lien="titi";
$lien="file://pc1-13/modele/".$nommodel;
header("location:$lien");
?>
j'ai encore une question...
je voudrais fair un bout de script qui incrémente automatiquement les noms des fichiers au fur et a mesure qu'on les créent (mais en fait, les fichiers et leurs noms ne sont pas vus par les utilisateurs du sites et sont faient pour les stockées) . Par exemple, il a le nom c000001.doc et quand on en créé un autre il est à c000002.doc et ainsi de suite jusqu'a arriver au nieme enregistrement : c00000n.doc !!!
oulala...... je sais pas si j'ai été compréhensible !!!
en fait, je voudrais le mettre dans ce script mais je ne vois pas comment
<?php
//cnx à la bd
$bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
//séléction de la bd
mysql_select_db(courrier2, $bd) or die("erreur de connexion à la base");
// on récupere le no de l'expediteur
$query1 = "SELECT noexp FROM table1 WHERE nomexp = '$nomexp'";
$result1 = mysql_query($query1) or die ("La requete 1 a echoué ");
$lineexp = mysql_fetch_array($result1,MYSQL_NUM);
$noexp = $lineexp[0];
$nomexpediteur = $lineexp[1];
//on récupere le no du destinataire (table destinataire)
$query2 = "SELECT * FROM destinataire WHERE stedest = '$stedest'";
$result2 = mysql_query($query2) or die ("La requete 2 à échoué");
$linedest = mysql_fetch_array($result2);
$nodest = $linedest[0];
$nomdest = $linedest[1];
$stedesti = $linedest[2];
$adress = $linedest[4];
$villedest = $linedest[5];
$cpvilledest = $linedest[6];
//on récupere le no du modele
$query3 = "SELECT * FROM modele WHERE nommodele = '$modele'";
$result3 = mysql_query($query3) or die ("La requete 3 à échoué");
$linemod= mysql_fetch_array($result3);
$nomodel = $linemod[0];
$nommodel = $linemod[1];
//on incrémente le nom du fichier et on récupere le nom du fichier
//on insert les données dans la table table2
$query4 = "INSERT INTO table2 (date, objet, personnel, refnodest, refnomodele, refnoexp) VALUES ('$date', '$objet', '$personnel', $nodest, $nomodel, $noexp)";
$result4 = mysql_query($query4) or die("erreur");
$chaine = $date.";".$objet.";".$nomexpediteur.";".$stedesti.";".$adress.";".cpvilledest.";".$villedest.";".$nomdest."\n";
mysql_close();
$f=fopen("C:\modele\fusion.txt","w");
fputs($f,"date;objet;nom_auteur;nom_entrep;adresse,code_postal;ville;nom_dest\n");
fputs($f,$chaine);
fclose($f);
$ff=fopen("C:\modele\fich.txt","w");
fputs($ff,$nommodel."\n");
fclose($ff);
//$lien="titi";
$lien="file://pc1-13/modele/".$nommodel;
header("location:$lien");
?>
A voir également:
- Nom d'un fichier en php
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
11 réponses
j'ai pas lu ton script mais il me semble qu'une solution consisterait a ecrire le numero n courant dans un fichier. tout simplement.
a chaque nouvelle creation, tu lis le nombre n courant, l'incremente de 1, cree ton fichier n+1 et reecris le fichier contenant n.
a chaque nouvelle creation, tu lis le nombre n courant, l'incremente de 1, cree ton fichier n+1 et reecris le fichier contenant n.
il faut aussi que ce nom de fichier rentre dans la table table2 (le nom de ce chps c'est nomfich)....
j'ai a peut pret compris ce que tu voulais dire mais ça reste un peu flou...
j'ai a peut pret compris ce que tu voulais dire mais ça reste un peu flou...
Bonjour ,
Je na sais pas ci cela peut t'aider , mais
sprintf est bien utile
<?php
foreach ( range(0,50) as $i)
{
$v1 = sprintf("file%010d", $i);
$v2 = sprintf("file%08d", $i);
print("$v1<br />\n$v2<br />\n");
}
?>
Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
Je na sais pas ci cela peut t'aider , mais
sprintf est bien utile
<?php
foreach ( range(0,50) as $i)
{
$v1 = sprintf("file%010d", $i);
$v2 = sprintf("file%08d", $i);
print("$v1<br />\n$v2<br />\n");
}
?>
Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
<?php
$st="a0";
foreach ( range(0,50) as $i)
{
print ("$st\n");
$st++;
}
?>
tu peux m'expliquer un peut plus ??? qu'est ce que c'est sprintf, ça veux dire quoi ???
ce qu'il ya en fait c'est quej'ai une lettre et des chiffres ... alors je ne sais pas du tout comment faire !
$st="a0";
foreach ( range(0,50) as $i)
{
print ("$st\n");
$st++;
}
?>
tu peux m'expliquer un peut plus ??? qu'est ce que c'est sprintf, ça veux dire quoi ???
ce qu'il ya en fait c'est quej'ai une lettre et des chiffres ... alors je ne sais pas du tout comment faire !
Bonjour,
sprintf permet de construire une chaîne à l'aide
* d'une chaîne de formatage
"%08d" --> un nombre entier en décimal sur 8 caractères, justifié droit et complété par des "0"
"%010d" --> un nombre entier en décimal sur 10 caractères, justifié droit et complété par des "0"
Pour plus d'info
http://www.php.net/manual/fr/function.sprintf.php
(je ne connais pas la qualité de la traduction, je regarde tjrs la doc
en anglais)
Le résultat de l'incrémentation d'une chaîne commence
par le caractère de droite
Output de l'exemple (tronqué)
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
b0
b1
b2
b3
...
Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
sprintf permet de construire une chaîne à l'aide
* d'une chaîne de formatage
"%08d" --> un nombre entier en décimal sur 8 caractères, justifié droit et complété par des "0"
"%010d" --> un nombre entier en décimal sur 10 caractères, justifié droit et complété par des "0"
Pour plus d'info
http://www.php.net/manual/fr/function.sprintf.php
(je ne connais pas la qualité de la traduction, je regarde tjrs la doc
en anglais)
Le résultat de l'incrémentation d'une chaîne commence
par le caractère de droite
Output de l'exemple (tronqué)
a0
a1
a2
a3
a4
a5
a6
a7
a8
a9
b0
b1
b2
b3
...
Johan Daine
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
Bonjour
c000001.doc
Essaye un
$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);
Où récupères-tu le numéro du fichier?
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
c000001.doc
Essaye un
$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);
Où récupères-tu le numéro du fichier?
Johan
The software said "Requires Windows98, Win2000, or better,
So I installed Unix.
je le récupere pas vue que ce nom est unique !
$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);
pourquoi ya un "d" avant le ".doc" ???
$nomfic = sprintf("c%06%d.doc", $filenum);
print($nomfic);
pourquoi ya un "d" avant le ".doc" ???