Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1282 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  enregistrer une page generer par php en un fichier texte.ref

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

enregistrer une page generer par php en un fichier texte.ref

n°1655159
ztnarfff
Posté le 09-12-2007 à 09:20:34  profilanswer
 

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  
 
++  
 

mood
Publicité
Posté le 09-12-2007 à 09:20:34  profilanswer
 

n°1655162
olivthill
Posté le 09-12-2007 à 09:26:27  profilanswer
 

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é.

n°1655293
FlorentG
Unité de Masse
Posté le 09-12-2007 à 15:36:55  profilanswer
 

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 :
  1. $resultat = ob_get_contents();
 

T'aura donc le résultat dans $resultat, suffit de l'écrire dans un fichier. Si t'as PHP5, c'est avec :

Code :
  1. file_put_contents($nom . '.txt', $resultat)


Si dans $nom t'as bien le nom


Message édité par FlorentG le 09-12-2007 à 15:37:11
n°1655394
ztnarfff
Posté le 09-12-2007 à 19:32:57  profilanswer
 

olivthill a écrit :

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é.


 
 
L enregistrement s'effectura sur le serveur, dans mon espace d'hébergement .  
 

n°1655434
ztnarfff
Posté le 09-12-2007 à 20:14:23  profilanswer
 

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;
 
 
} )?>


Message édité par ztnarfff le 09-12-2007 à 20:59:02
n°1655450
FlorentG
Unité de Masse
Posté le 09-12-2007 à 20:46:14  profilanswer
 

Ben voilà, autour du print, tu rajoutes mes instructions pour capturer la sortie

n°1655451
FlorentG
Unité de Masse
Posté le 09-12-2007 à 20:46:38  profilanswer
 

Ou alors moins chiant, tu concatène dans une string, et tu fais le file_put_contents directement [:dawa]

n°1655459
ztnarfff
Posté le 09-12-2007 à 20:58:05  profilanswer
 

FlorentG a écrit :

Ou alors moins chiant, tu concatène dans une string, et tu fais le file_put_contents directement [:dawa]


 
 
peux tu editer mon script du dessus et ajouter les lignes que tu me préconise. ca sera plus simple.  merci pour ton aide .  
 

n°1655461
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:01:41  profilanswer
 

Nan, à toi d'essayer. Si tu veux apprendre...

n°1655466
ztnarfff
Posté le 09-12-2007 à 21:06:13  profilanswer
 

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  
 
 

mood
Publicité
Posté le 09-12-2007 à 21:06:13  profilanswer
 

n°1655473
ztnarfff
Posté le 09-12-2007 à 21:23:54  profilanswer
 

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   ?

n°1655475
yellu
Posté le 09-12-2007 à 21:27:20  profilanswer
 

Concatene des retours à la ligne si tu veux des retours à la ligne ...
 
cherche autour de chr(10), chr(13)

n°1655476
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:27:29  profilanswer
 

Faut spécifier manuellement un retour chariot

n°1655477
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:27:50  profilanswer
 

yellu a écrit :

cherche autour de chr(10), chr(13)


On est pas en VB ;) c'est "\n" dans ce cas

n°1655478
yellu
Posté le 09-12-2007 à 21:28:33  profilanswer
 
n°1655479
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:29:42  profilanswer
 

Ah ça existe aussi [:dawak] Mais par convention, on utilise \n plutôt (ou \r\n si on veux du win)

n°1655480
yellu
Posté le 09-12-2007 à 21:30:48  profilanswer
 

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.

n°1655481
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:31:41  profilanswer
 

Nanan, ça risque pas. Et au moins il saura ce que c'est \n, vu qu'on ne voit qu'extrêmement rarement chr().

n°1655482
yellu
Posté le 09-12-2007 à 21:33:27  profilanswer
 

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 ;)

n°1655484
FlorentG
Unité de Masse
Posté le 09-12-2007 à 21:37:15  profilanswer
 

Haha :D

n°1656858
ztnarfff
Posté le 11-12-2007 à 21:34:54  profilanswer
 

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()

n°1656863
FlorentG
Unité de Masse
Posté le 11-12-2007 à 21:46:22  profilanswer
 

Si file_put_contents n'existe pas, c'est que t'es sous PHP4 :(

n°1656864
ztnarfff
Posté le 11-12-2007 à 21:50:22  profilanswer
 

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


Message édité par ztnarfff le 12-12-2007 à 09:30:48
n°1656870
FlorentG
Unité de Masse
Posté le 11-12-2007 à 22:00:11  profilanswer
 

Ecrit pas \n tout court, mais "\n" (avec les double-quotes)

n°1656879
ztnarfff
Posté le 11-12-2007 à 22:09:47  profilanswer
 

maintenant ca ecrit ca  
 
Fatal error: Call to undefined function: file_put_contents() in /home/users/www/ref/creationpagesref.php on line 38


Message édité par ztnarfff le 12-12-2007 à 09:31:02
n°1656886
FlorentG
Unité de Masse
Posté le 11-12-2007 à 22:14:57  profilanswer
 

Oui, comme je t'ai dis, t'es sous PHP4. Il faut utiliser fopen, fwrite et fclose pour écrire dans le fichier

n°1656902
ztnarfff
Posté le 11-12-2007 à 22:38:55  profilanswer
 

j ai beau chercher , je comprend rien avec fopen et fwrite,  
 
je sui trop perdu .
 
help

n°1656903
FlorentG
Unité de Masse
Posté le 11-12-2007 à 22:40:19  profilanswer
 

mais nan. Regarde la doc de fwrite, y'a un bon exemple : http://fr.php.net/manual/en/function.fwrite.php

n°1656919
ztnarfff
Posté le 11-12-2007 à 23:10:28  profilanswer
 

$file = fopen($nom'.txt','x');
$text=$conca;
fwrite($file, $text);  
fclose($file);
 
 
quand pense tu ?  

n°1656945
FlorentG
Unité de Masse
Posté le 11-12-2007 à 23:54:33  profilanswer
 

Voilà, c'est ça :jap: T'as plus qu'à tester


Message édité par FlorentG le 11-12-2007 à 23:54:42
n°1657000
ztnarfff
Posté le 12-12-2007 à 09:36:52  profilanswer
 

MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIII    
 
un grand MERCIIIIIIIIIIIIIIIIII      
 
ca marche t'es un boss florentG

n°1657003
ztnarfff
Posté le 12-12-2007 à 09:46:02  profilanswer
 

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
 
 

n°1657005
ztnarfff
Posté le 12-12-2007 à 09:50:17  profilanswer
 

je dois utiliser la fonction  
 
preg_replace

n°1657012
FlorentG
Unité de Masse
Posté le 12-12-2007 à 10:07:45  profilanswer
 

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 :)

n°1657053
ztnarfff
Posté le 12-12-2007 à 11:14:44  profilanswer
 

MDR .
 
DONC  j'ai utilisé l arme ultime ... lol  
 
ca focntionne top .  
 
merci qd meme, et paix à la mémoire de la mouche


Message édité par ztnarfff le 12-12-2007 à 11:15:02
n°1657488
ztnarfff
Posté le 13-12-2007 à 00:16:35  profilanswer
 

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
 

n°1657569
FlorentG
Unité de Masse
Posté le 13-12-2007 à 10:24:22  profilanswer
 

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 :
  1. $conca = str_replace(
  2.  array('_', '?', '/'), '-', $conca);


Tu peux mettre autant de caractères dans le tableau, il seront tous remplacés par '-' (ou ce que tu veux)

n°1658611
ztnarfff
Posté le 15-12-2007 à 07:35:01  profilanswer
 

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).
 
Et tu peux toujours utiliser str_replace, avec un tableau, ça vaudra mieux :

Code :
  1. $conca = str_replace(
  2.  array('_', '?', '/'), '-', $conca);


Tu peux mettre autant de caractères dans le tableau, il seront tous remplacés par '-' (ou ce que tu veux)


 
 
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.  
 

n°1658612
ztnarfff
Posté le 15-12-2007 à 07:58:15  profilanswer
 

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.  
 

n°1658617
FlorentG
Unité de Masse
Posté le 15-12-2007 à 10:43:28  profilanswer
 

Remplace ' par \' dans la chaîne

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  enregistrer une page generer par php en un fichier texte.ref

 

Sujets relatifs
[HTML] Faire appel a du texte externe ?Revenir a la page précédente pour plus d'ergonomie
Fractionner un fichier texteProblème affichage du text dans un fichier après OpenTextFile
Newsletter avec reload de page!copie automatique de fichier
Zone d'édition de texte / Mode colonesfirefox - IE - Différence de page !!!
Sécurité et protection d'une page et d'un dossier 
Plus de sujets relatifs à : enregistrer une page generer par php en un fichier texte.ref


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR