Comment peut-on parcourir un fichier?
rohfrh
Messages postés
15
Statut
Membre
-
taktouk2010 Messages postés 9 Statut Membre -
taktouk2010 Messages postés 9 Statut Membre -
Salut, mon probléme c'est que pour le moment je voudrais ouvrir un fichier texte ou xml et le consulter et puis je vais essayer d'extraire les données que j'en ai besoin en PHP.
Mais j'ai toujours le même erreur, je voudrais savoir comment je pourrais consulter mes fichiers textes par exemple qui se trouvent dans:
C:\Programmes Files\EasyPHP5.3.0\Report.txt.
et s'il y a un autre moyen priére de m'aider.
voici le code:
<?php
$file = include(".;/Programmes Files/EasyPHP5.3.0/Report.txt");
print "The include file returned $file";
?>
et voici le message du navigateur:
Warning: include(.;/Programmes Files/EasyPHP5.3.0/Report.txt) [function.include]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
Warning: include() [function.include]: Failed opening '.;/Programmes Files/EasyPHP5.3.0/Report.txt' for inclusion (include_path='.;C:\php5\pear') in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
The include file returned
voici un autre:
<?php
$fp=fopen("Report.txt",'r',C:\Programmes Files\EasyPHP5.3.0\Report.txt) or die ("Impossible d'ouvrir le message");
?>
le message du navigateur:
Parse error: parse error in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
A plus...
Mais j'ai toujours le même erreur, je voudrais savoir comment je pourrais consulter mes fichiers textes par exemple qui se trouvent dans:
C:\Programmes Files\EasyPHP5.3.0\Report.txt.
et s'il y a un autre moyen priére de m'aider.
voici le code:
<?php
$file = include(".;/Programmes Files/EasyPHP5.3.0/Report.txt");
print "The include file returned $file";
?>
et voici le message du navigateur:
Warning: include(.;/Programmes Files/EasyPHP5.3.0/Report.txt) [function.include]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
Warning: include() [function.include]: Failed opening '.;/Programmes Files/EasyPHP5.3.0/Report.txt' for inclusion (include_path='.;C:\php5\pear') in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
The include file returned
voici un autre:
<?php
$fp=fopen("Report.txt",'r',C:\Programmes Files\EasyPHP5.3.0\Report.txt) or die ("Impossible d'ouvrir le message");
?>
le message du navigateur:
Parse error: parse error in C:\Program Files\EasyPHP5.3.0\www\sources\include.php on line 11
A plus...
A voir également:
- Comment peut-on parcourir un fichier?
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
4 réponses
En generale ce n'est pas possible d'acceder au fichiers locaux à partir d'un serveur distant ... c'est très delicat . donc essayez de tester cela avec les fichier se trouvant sur la racine du serveur et pas celle de disque locale ...
Bonjour,
Peut être trouveras-tu ici : https://php.developpez.com/faq/index.php?page=fichiers_lire#fichiers_recupcontenu
;o)
Peut être trouveras-tu ici : https://php.developpez.com/faq/index.php?page=fichiers_lire#fichiers_recupcontenu
;o)
Salut rohfrh,
va falloir réviser les include() ;)
http://www.manuelphp.com/php/function.include.php
Il faut bien comprendre ce qui se passe lors d'une inclusion. Imagine que tout le contenu du fichier inclus remplace la simple ligne include(...); du script appelant.
En réalité, le contenu du fichier est analysé en entier, et traité comme un fichier php normal : s'il y a des balises <?php ... ?>, le code php est analysé, sinon c'est affiché directement.
La valeur de retour est 1 par défaut, et c'est ce que tu obtiendrais dans ta variable $file s'il n'y avait pas d'autre erreur (au passage, je pense que tu as confondu le chemin de ton fichier et l'include_path).
Voici un exemple qui devrait clarifier les choses :
Si tu cherches à afficher simplement le contenu du fichier, je te conseille readfile() : http://www.manuelphp.com/php/function.readfile.php
Autrement, la solution fopen() est la meilleure. Tu as juste un petit problème de syntaxe :
L'erreur que tu avais est dûe à l'absence de guillemets autour de 'C:\Program Files\etc.', mais de toute façon, en général on appelle fopen() avec seulement deux paramètres.
Si tu as d'autres questions, n'hésite pas ;)
va falloir réviser les include() ;)
http://www.manuelphp.com/php/function.include.php
Il faut bien comprendre ce qui se passe lors d'une inclusion. Imagine que tout le contenu du fichier inclus remplace la simple ligne include(...); du script appelant.
En réalité, le contenu du fichier est analysé en entier, et traité comme un fichier php normal : s'il y a des balises <?php ... ?>, le code php est analysé, sinon c'est affiché directement.
La valeur de retour est 1 par défaut, et c'est ce que tu obtiendrais dans ta variable $file s'il n'y avait pas d'autre erreur (au passage, je pense que tu as confondu le chemin de ton fichier et l'include_path).
Voici un exemple qui devrait clarifier les choses :
====== fichier : include1.php ======
<?php
return 42;
?>
====== fichier : include2.txt ======
<h1>Bonjour</h1>
======= fichier : test.php =========
<?php
$retour1 = include('include1.php');
// rien ne s'affiche
$retour2 = include('include2.txt');
// affiche '<h1>Bonjour</h1>'
var_dump($retour1);
// affiche 'int(42)'
var_dump($retour2);
// affiche 'int(1)'
?>
Si tu cherches à afficher simplement le contenu du fichier, je te conseille readfile() : http://www.manuelphp.com/php/function.readfile.php
Autrement, la solution fopen() est la meilleure. Tu as juste un petit problème de syntaxe :
<?php
$fp = fopen('C:\Programmes Files\EasyPHP5.3.0\Report.txt','r')
or die ("Impossible d'ouvrir le message");
?>
L'erreur que tu avais est dûe à l'absence de guillemets autour de 'C:\Program Files\etc.', mais de toute façon, en général on appelle fopen() avec seulement deux paramètres.
Si tu as d'autres questions, n'hésite pas ;)
si vous voulez essayer avec un fichier sur le serveur (ça veut dire local par rapport au fichier php où se trouvant le code php qui lance l'opération ) on doit bien entendu evoquer la notion du shéma relatif d'un fichier ... donc un fichier php dans un serveur (virtuel ou réel) peut agir (generalement) sur les fichiers qui lui sont locaux (distants par rapport au disque locale de l'utilisateur/visiteur) alors il suffit d'utiliser les shemas relatifs pour lire/ecrire sur ces fichier .
exemple :
*Creez un fichier test.php et mettez le dans un repertoire x dans le serveur (si virtuel alors dans la racine www/machin ou htdocs/machin)
* verifiez que cette repertoir x ne soit pas protégée en ecriture/lecture
*mettez le code suivant dans test.php : <?php
$fp = fopen('hello.txt','w+')
or die ("Impossible d'ouvrir le message");
fputs ($fp,"Hello world");
fclose ($fp);
$fp2 = fopen ("hello.txt","r");
$txt = fgets ($fp2,filesize("hello.txt"));
echo $txt
?>
normalement ça doit marcher . la meme chose pour include .
faite un fichier : hello.txt mettez y ce que vous voulez et puis metter le dans la même repertoir qu'un fichier php test.php et mettez dans ce dernier <?php
include ("hello.txt");
?>
en gros hello.txt était toujours un fichier local relativement à test.php c'est pour cette raison qu'en la modifiant/lisant on ne risque pas le systeme locale de l'utilisateur/visiteur (enfaite c'est pour des raison de sécurité que le systeme d'exploitation et/ou le navigateur bloque tout accés possible par un script distant aux ressources locaux )
exemple :
*Creez un fichier test.php et mettez le dans un repertoire x dans le serveur (si virtuel alors dans la racine www/machin ou htdocs/machin)
* verifiez que cette repertoir x ne soit pas protégée en ecriture/lecture
*mettez le code suivant dans test.php : <?php
$fp = fopen('hello.txt','w+')
or die ("Impossible d'ouvrir le message");
fputs ($fp,"Hello world");
fclose ($fp);
$fp2 = fopen ("hello.txt","r");
$txt = fgets ($fp2,filesize("hello.txt"));
echo $txt
?>
normalement ça doit marcher . la meme chose pour include .
faite un fichier : hello.txt mettez y ce que vous voulez et puis metter le dans la même repertoir qu'un fichier php test.php et mettez dans ce dernier <?php
include ("hello.txt");
?>
en gros hello.txt était toujours un fichier local relativement à test.php c'est pour cette raison qu'en la modifiant/lisant on ne risque pas le systeme locale de l'utilisateur/visiteur (enfaite c'est pour des raison de sécurité que le systeme d'exploitation et/ou le navigateur bloque tout accés possible par un script distant aux ressources locaux )