enregistrer une page generer par php en un fichier texte.ref - PHP - Programmation
Marsh Posté le 09-12-2007 à 09:26:27
Où aurait lieu cet enregistrement ? Sur le serveur ou sur le poste client ?
Si c'est sur le serveur, alors on peut se servir des fonction fopen(), fwrite(), fprintf(), fclose().
Si c'est sur le poste client, alors ce n'est pas possible. C'est interdit pour des raisons de sécurité.
Marsh Posté le 09-12-2007 à 15:36:55
Avec l'output buffering, c'est assez simple. Avant de commencer ton affichage des champs, fait un :
Code : |
Ensuite récupère et fait tes echo de manière normalle, puis un :
Code : |
T'aura donc le résultat dans $resultat, suffit de l'écrire dans un fichier. Si t'as PHP5, c'est avec :
Code :
|
Si dans $nom t'as bien le nom
Marsh Posté le 09-12-2007 à 19:32:57
olivthill a écrit : Où aurait lieu cet enregistrement ? Sur le serveur ou sur le poste client ? |
L enregistrement s'effectura sur le serveur, dans mon espace d'hébergement .
Marsh Posté le 09-12-2007 à 20:14:23
voici une ébauche de la progammation
<?php
//script enregistre un fichier texte();
//ouverture de la BD ();
$link = mysql_connect(" ", " ", " " ) or die ("Impossible de se connecter ligne 1" );
mysql_select_db (" " ) or die ("Impossible d'accéder à la base de données ligne 1" );
$query = "SELECT * FROM fichiertxt";
$result = mysql_query ($query) or die ("La requête a échoué" );
$i=0;
// creation de la boucle ();
while($i<mysql_num_rows($result)){
$nom=mysql_result($result,$i,"nom" );
$couleur=mysql_result($result,$i,"couleur" );
$longueur=mysql_result($result,$i,"longueur" );
$largeur=mysql_result($result,$i,"largeur" );
// affichage du contenu ();
print ("
$nom<br>
$couleur<br>
$longueur<br>
$largeur" );
// insertion de la ligne pour l enregistrement() ;
// incrementation de la boucle ();
$i+1=$i;
// remise a zero des valeurs ();
$nom=null;
$couleur=null;
$longueur=null;
$largeur=null;
} )?>
Marsh Posté le 09-12-2007 à 20:46:14
Ben voilà, autour du print, tu rajoutes mes instructions pour capturer la sortie
Marsh Posté le 09-12-2007 à 20:46:38
Ou alors moins chiant, tu concatène dans une string, et tu fais le file_put_contents directement
Marsh Posté le 09-12-2007 à 20:58:05
FlorentG a écrit : Ou alors moins chiant, tu concatène dans une string, et tu fais le file_put_contents directement |
peux tu editer mon script du dessus et ajouter les lignes que tu me préconise. ca sera plus simple. merci pour ton aide .
Marsh Posté le 09-12-2007 à 21:01:41
ReplyMarsh Posté le 09-12-2007 à 21:06:13
FlorentG a écrit : Nan, à toi d'essayer. Si tu veux apprendre... |
lol
merci qd meme , tu as tout a fait raison , je mis mets de suite
Marsh Posté le 09-12-2007 à 21:23:54
FlorentG a écrit : Nan, à toi d'essayer. Si tu veux apprendre... |
pour concatener j ai trouver lol :
$conca=$nom.$couleur.$longueur.$largeur ;
file_put_contents($nom . '.txt', $conta) ;
mais es ce que les variables seront enregistrer tel quel
nom
couleur
longueur
largeur
et non
nom couleur longueur largeur
tu en pense quoi ?
Marsh Posté le 09-12-2007 à 21:27:20
Concatene des retours à la ligne si tu veux des retours à la ligne ...
cherche autour de chr(10), chr(13)
Marsh Posté le 09-12-2007 à 21:27:50
ReplyMarsh Posté le 09-12-2007 à 21:29:42
Ah ça existe aussi Mais par convention, on utilise \n plutôt (ou \r\n si on veux du win)
Marsh Posté le 09-12-2007 à 21:30:48
Avec le risque qu'il mette des simples quotes et qu'il revienne demander pourquoi ça marche pas je préfere lui indiquer la méthode simple.
Marsh Posté le 09-12-2007 à 21:31:41
Nanan, ça risque pas. Et au moins il saura ce que c'est \n, vu qu'on ne voit qu'extrêmement rarement chr().
Marsh Posté le 09-12-2007 à 21:33:27
Je pourrai te répondre qu'au moins avec méthode il apprendrai le code ASCII des saut de lignes mais j'ai pas toute la soirée pr pinailler
Marsh Posté le 11-12-2007 à 21:34:54
Voici ce que jai écris et le résultat c'est un code erreur :
$query = "SELECT * FROM fichiertxt";
$result = mysql_query ($query) or die ("La requête a échoué" );
$i=0;
// creation de la boucle ();
while($i<mysql_num_rows($result)){
$nom=mysql_result($result,$i,"nom" );
$couleur=mysql_result($result,$i,"couleur" );
$longueur=mysql_result($result,$i,"longueur" );
$largeur=mysql_result($result,$i,"largeur" );
// affichage du contenu ();
print ("
$nom<br>
$couleur<br>
$longueur<br>
$largeur" );
// insertion de la ligne pour l enregistrement() ;
$conca=$nom.chr(10).$couleur.chr(10).$longueur.chr(10).$largeur ;
print (" $conca " );
file_put_contents($nom.'.txt', $conta) ;
// ligne 38 ();
// incrementation de la boucle ();
$i=$i+1 ;
// ligne 48 ();
// remise a zero des valeurs ();
} ?>
Fatal error: Call to undefined function: file_put_contents()
Marsh Posté le 11-12-2007 à 21:46:22
Si file_put_contents n'existe pas, c'est que t'es sous PHP4
Marsh Posté le 11-12-2007 à 21:50:22
et lorsque que j ecris ceci
$conca=$nom.\n.$couleur.\n.$longueur.\n.$largeur ;
print (" $conca " );
file_put_contents($nom.'.txt', $conta) ;
// ligne 38 ();
ca m'indique :
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/users/www/ref/creationpagesref.php on line 36
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/users/www/ref/creationpagesref.php on line 36
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/users/www/ref/creationpagesref.php on line 36
dede
bleue
150 cm
140 cm dedenbleuen150 cmn140 cm
Marsh Posté le 11-12-2007 à 22:00:11
Ecrit pas \n tout court, mais "\n" (avec les double-quotes)
Marsh Posté le 11-12-2007 à 22:09:47
maintenant ca ecrit ca
Fatal error: Call to undefined function: file_put_contents() in /home/users/www/ref/creationpagesref.php on line 38
Marsh Posté le 11-12-2007 à 22:14:57
Oui, comme je t'ai dis, t'es sous PHP4. Il faut utiliser fopen, fwrite et fclose pour écrire dans le fichier
Marsh Posté le 11-12-2007 à 22:38:55
j ai beau chercher , je comprend rien avec fopen et fwrite,
je sui trop perdu .
help
Marsh Posté le 11-12-2007 à 22:40:19
mais nan. Regarde la doc de fwrite, y'a un bon exemple : http://fr.php.net/manual/en/function.fwrite.php
Marsh Posté le 11-12-2007 à 23:10:28
$file = fopen($nom'.txt','x');
$text=$conca;
fwrite($file, $text);
fclose($file);
quand pense tu ?
Marsh Posté le 11-12-2007 à 23:54:33
Voilà, c'est ça T'as plus qu'à tester
Marsh Posté le 12-12-2007 à 09:36:52
MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIII
un grand MERCIIIIIIIIIIIIIIIIII
ca marche t'es un boss florentG
Marsh Posté le 12-12-2007 à 09:46:02
maintenant pour finir le tout, il faudrait si le nom posséde un espace, qu'il soit remplacer par "-" ou "_"
exemple :
bob dede
deviendrait bod-dede.txt
c'est la variable $nom
Marsh Posté le 12-12-2007 à 10:07:45
Si c'est juste les espaces, str_replace fait aussi l'affaire : preg_replace utilise une expression régulière, ce qui serait la bombe atomique pour tuer une mouche
Marsh Posté le 12-12-2007 à 11:14:44
MDR .
DONC j'ai utilisé l arme ultime ... lol
ca focntionne top .
merci qd meme, et paix à la mémoire de la mouche
Marsh Posté le 13-12-2007 à 00:16:35
j ai des lettres autre que des espaces que je souahaite remplacer :
le ' ? '
et le ' / '
$nom= ereg_replace('?','-',$nom) ;
lorsque je les entre ds la fct il me retourne une erreur
Marsh Posté le 13-12-2007 à 10:24:22
N'utilise pas ereg_replace, mais preg_replace (plus rapide et utilise PCRE pour les expressions régulières, qu'on trouve un peu partout).
Et tu peux toujours utiliser str_replace, avec un tableau, ça vaudra mieux :
Code : |
Tu peux mettre autant de caractères dans le tableau, il seront tous remplacés par '-' (ou ce que tu veux)
Marsh Posté le 15-12-2007 à 07:35:01
FlorentG a écrit : N'utilise pas ereg_replace, mais preg_replace (plus rapide et utilise PCRE pour les expressions régulières, qu'on trouve un peu partout).
|
nikel ca fct tres bien aussi, c'est plus simple, ca réduit le nombre de ligne du programme, ainsi je réduis les possibilités d'erreur.
Marsh Posté le 15-12-2007 à 07:58:15
le programme pour enregistrer enn .ref fct top. La je bricole sur une page de mise en forme .
{document.write('<input type="hidden" name="session" value="oui">');}
voila une ligne de java qui ce trouve dans un script , le problème c'est qu'elle poséde des ' ' , et donc je ne peux pas la concaténer avec des $nom.
exemple :
$conca=$nom.'{document.write('<input type="hidden" name="session" value="oui">');}'.$longueur
il y a interferance, j'ai essayé de mettre la ligne de java ds ma bdd, et de la récuperer après, mais le problème reste.
Marsh Posté le 09-12-2007 à 09:20:34
Salut à tous.
J'ai cherché un titre explicite mais c'est pas facile.
Voila, je possede une bd avec différentes colonnes .
Je veux pour chaque ligne de la bd créer un fichier indépendant et qui porte le nom du premier champs.
exemple :
bd :
nom couleur hauteur longueur
dede bleu 95 100
en php j affiche le fichier :
dede
bleu
95
100
et donc ce que je viens d'afficher j'aimerais l'enregistrer en dede.ref , ou au moin dede.txt
La dernière chose c'est que je vais faire une boucle , car évidemment il y pas mal de ligne .
J'allais oublier , ce qui m'intéresse c'est la ligne de programmation à écrire pr l'enregistrement. Pour le reste logiquement ca devrait aller.
merci d'avance
++