Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/11/2006, 19h51   #1
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Par défaut Récupération du contenu d'un ficher

Bonsoir,

Juste une confirmation.

J'ai un fichier dont le nom est :

Dans lequel j'ai :

Code :
toi|tonprenom|tonnom|tonadressemail|
Je veux mettre à jour ce fichier, j'ai donc commencé par essayer de le lire en faisant :

Code :
1
2
3
4
$file = fopen("../data/lodan@monsite.fr.abook","r");
$donnees = fgets($file,1024);
fclose($file);
echo'Le fichier contient : '.$donnees;
Mais je n'ai rien comme résultat, je me suis trompé quelque part, mais je ne vois pas où.

Merci d'avance
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 23h28   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Code :
1
2
3
4
5
6
7
$file = '../data/lodan@monsite.fr.abook';
if (!file_exists($file)) {
   echo "le fichier n'existe pas";
} else {
   $donnees = file_get_contents($file);
   echo 'Le fichier contient : '.$donnees;
}
Si ca marche pas je te suggère d'utiliser plutot ça :
Code :
$file = dirname(__FILE__) .'/../data/lodan@monsite.fr.abook';
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/11/2006, 23h50   #3
Membre éclairé
 
Avatar de broumbroum
 
Inscription : août 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : août 2006
Messages : 406
Points : 383
Points : 383
Citation:
Envoyé par Mr N.
Code :
1
2
3
4
//(...)
 file_get_contents($file);
   echo 'Le fichier contient : '.$donnees;
}
Je cite donc le code ci-dessus pour ajouter une correction: il peut éviter l'affichage complet des données pour ne pas gacher tout l'espace avec un substr() ou une sortie bufferisée (buffered output), ainsi la mémoire est mieux conservée.
Code :
1
2
3
4
5
 ob_start(); 
echo "file:".$donnees; 
$str = substr(ob_get_contents(), 100); 
ob_end(); 
echo $str;
broumbroum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 14h24   #4
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Mr N, j'arrive à lire mon fichier avec la solution du
Code :
$file = dirname(__FILE__) .'/../data/lodan@monsite.fr.abook';
dans ce cas le code de lecture à disparu, ce n'est pas gènant ?

Le petit plus de broumbroum me donne une erreur

Code :
Fatal error: Call to undefined function ob_end() in c
dans mon code :

Code :
1
2
3
4
5
6
$donnees = file_get_contents($file); 
	ob_start(); 
	echo "file:".$donnees; 
	$str = substr(ob_get_contents(), 100); 
	ob_end(); 
	echo $str;
Merci à vous 2
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/11/2006, 14h35   #5
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Citation:
Envoyé par lodan
Code :
$file = dirname(__FILE__) .'/../data/lodan@monsite.fr.abook';
dans ce cas le code de lecture à disparu, ce n'est pas gènant ?
C'est quoi le code de lecture ?

Citation:
Envoyé par lodan
Le petit plus de broumbroum me donne une erreur
Laisse tomber c'est foireux
Je vois pas trop l'interet de bufferiser dans ton cas.
Au pire on fait deux echo à la suite (et encore faudrait vraiment tomber dans un cas extreme) mais on va pas s'amuser à sortir l'artillerie lourde juste pour afficher la concaténation de "file:" et le contenu d'un fichier ^^
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 02h08   #6
Membre éclairé
 
Avatar de broumbroum
 
Inscription : août 2006
Messages : 406
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : août 2006
Messages : 406
Points : 383
Points : 383
Ouais c'est peut-être foireux mais ça vaut la peine pour le filtrage du flux HTML. en fait c'est
Code :
ob_end_clean(); // a la place de ob_end_flush() qui "tire la chasse d'eau" et ne filtre pas.
broumbroum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 09h59   #7
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Le code de lecture c'est savoir si on est en lecture seul, lecture écriture. C'est ce que j'avais dans ma façon de programmer l'ouverture du fichier avec le "r" :

Code :
$file = fopen("../data/lodan@monsite.fr.abook","r");
Mais peut-être que dans cette méthode cela fonctionne sans.

Broumbroum, je n'ai plus l'erreur, merci.

Je buferise, je buferise pas, je vais voir, en tout cas j'ai l'artillerie au cas où.

Merci à vous deux.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 10h01   #8
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Le code de lecture est dans le nom de la fonction : file_get_contents
Quand tu "get", tu ne fais qu'une lecture...
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 14h21   #9
Membre extrêmement actif
 
Avatar de lodan
 
Inscription : juin 2006
Messages : 1 804
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1 804
Points : 587
Points : 587
Merci. Je voulais getter, ça me va.
__________________
Y a pas, plus on fait, plus on sait. Plus on cherche, plus on sait chercher. Maintenant quant à trouver, c'est autre chose.
lodan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h14.


 
 
 
 
Partenaires

Hébergement Web