Menu

[PHP] Afficher le contenu d'un fichier [Résolu/Fermé]

Messages postés
15
Date d'inscription
mardi 11 juillet 2006
Statut
Membre
Dernière intervention
30 novembre 2006
- - Dernière réponse : smed_79
Messages postés
1304
Date d'inscription
dimanche 21 septembre 2008
Statut
Contributeur
Dernière intervention
17 mars 2017
- 19 janv. 2012 à 01:46
Bonjour à tous !

Sur ma page, j'ai réussi à :
- ouvrir un dossier (dans un répertoire sur mon dd local) et
- afficher sous forme de liens, les fichiers contenus dans ce dossier.

Ce que je voudrais, c'est afficher sous le nom de chaque fichier, leur contenu,

ou bien,

afficher leur contenu, dès que l'utilisateur clique sur le lien correspondant.

L'on m'a, ainsi proposé cela :

Je cite : "pour afficher le contenu du fichier juste au dessous du nom, tu peux ajouter juste au dessous de l'instuction d'affichage du nom un appel à include, t'auras un truc du genre :

print("<br> $nom_fichier");
include("$chemin/$nom_fichier");


"

Je m'explique donc, ce qui m'a été proposé est ok, mais pas dans la fonction ci-dessous :

function affich_nom_fichier ($????)
 
   {
        if($open = opendir('file:///C:/Program Files/xampp/htdocs/cipac/base_cipac/Management/ELP/Formulaires')){
                while (false !== ($file = readdir($open))){
                        if ($file != "." && $file != ".."){
                                $link_file = "$file\n";
                                        echo ("$link_file");
                                       $chemin = "file:///C:/Program Files/xampp/htdocs/cipac/base_cipac/Management/ELP/Formulaires";
                                print ("$chemin/Essai.txt");
                        }}closedir($open);}}


Pour m'exprimer clairement, cette fonction même affiche les nom de fichiers présents dans le dossier suivant le chemin ($chemin) et affiche le contenu du fichier Essai.txt.

Or ce que je voudrais, c'est que suivant le nom du fichier, il affiche "automatiquement" son contenu et que l'on est pas à préciser comme ci-dessous :

$chemin = "file:///C:/Program Files/xampp/htdocs/cipac/base_cipac/Management/ELP/Formulaires";
                                print ("$chemin/Essai.txt")


qu'il s'agit du fichier Essai.txt

Voilà, c'est sur cela que je bloque.

Seconde proposition est :

function affich_nom_fichier ($chemin)
{
  if($open = opendir($chemin))
    while (false !== ($file = readdir($open)))
      if ($file != "." && $file != "..")
      {
         $link_file = "$file";
         echo ("$link_file\n");
         print ("$chemin/$file\n");
      }
  closedir($open);
}


Celle ci marche, sauf que je voudrais afficher le contenu du fichier et non le lien.

Troisième et dernière proposition :

echo file_get_contents('nom_du_fichier');


Ne fonctionne pas, non plus :

{
        if($open = opendir('file:///C:/Program Files/xampp/htdocs/cipac/base_cipac/Management/ELP/Formulaires')){
                while (false !== ($file = readdir($open))){
                        if ($file != "." && $file != ".."){
                                $link_file = "$file\n";
                                echo ('Nom du fichier : '."$link_file\n<br><br>");
                                echo file_get_contents("../cipac/base_cipac/Management/ELP/Formulaires/$link_file\n");
                                
                        }}closedir($open);}}}


Résultat, il m'affiche ceci :

Warning: file_get_contents(../cipac/base_cipac/Management/ELP/Formulaires/Essai.txt ) [function.file-get-contents]: failed to open stream: Invalid argument

Si vous voyez de possibles solutions dites le moi.Merci bien.

Merci de votre aide.
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
1304
Date d'inscription
dimanche 21 septembre 2008
Statut
Contributeur
Dernière intervention
17 mars 2017
643
8
Merci
6 ans plus tard :D lol

<?php
$lines = file('./fichier-a-afficher-le-contenu.txt');

// display file line by line
foreach($lines as $line_num => $line) {
    echo "# {$line_num} : ".htmlspecialchars($line)."<br />\n";
}
?>

Dire « Merci » 8

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 40875 internautes nous ont dit merci ce mois-ci

5
Merci
Plus simple :

$file='monfichier';
$contenu=file_get_contents($file);
echo "<br><br>Contenu du fichier $file : <br><pre>$contenu</pre>";
4
Merci
3 ans plus tard une autre réponse:
<?php
// Définition du chemin à explorer, garder le dernier "/"
   $homedir = "./info/";


    $dir = @opendir($homedir);
    
    while ($file = readdir($dir)) {
      		if (($file != ".") && ($file != "..")) lireFichierTxt($homedir, $file);
    }
    closedir($dir);




function lireFichierTxt($homedir, $fileTxt){
//$Fnm = "./info/info.txt"; 
$Fnm = $homedir.$fileTxt; 
if (file_exists($Fnm)) {
 $tableau = file($Fnm);
  while(list($cle,$val) = each($tableau)) {
   echo $val."<br>"."<br>";
  }
}
}
?>

Ouvrir l’Explorateur et choisir dans Affichage la commande Options. En haut de la fenêtre
affichée, cliquer sur l’onglet Types de fichiers. Windows affiche la liste de tous les fichiers
qu’il utilise. Dans la zone Types de fichiers, cliquer sur Dossiers et sur Modifier. Windows
propose une liste d’actions. il faut créer une nouvelle action. Cliquer sur Nouveau et nommer
l’action en tapant dans le cadre Action par exemple Contenu du dossier. Dans le cadre
Application utilisée pour exécuter l’action taper exactement :

command.com*/c*dir*/b/s*>*c:\Windows\Bureau\Listing.txt ( les * sont des espaces )

Cliquer sur ok et l’action apparaît dans la liste. Cliquer sur fermer deux fois consécutives.
La liste sera copiée dans un document nommé Listing.txt affiché sur le bureau.
Pour obtenir le contenu d’un dossier, cliquer avec le bouton droit de la souris sur ce dossier
et dans le menu contextuel, sélectionner Contenu du dossier. Le dossier Listing.txt correspondant
est créer sur le bureau.
Messages postés
4100
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
2 septembre 2013
816
1
Merci
Voici une solution simple et qui devrait marcher (non testée car je peux pas actuellement) donc il y a peut etre des erreurs --> a debugger.

<SCRIPT language="javascript">
function aff_fichier ( contenu ){
	var _div = document.getElementById("lecture");
	_div.innerHTML = contenu;
}
</SCRIPT>

<?php

function lire_fichier ( $path_file ){
	// --- Open the file
	$tableau=file( $path_file );
	
	// affichage du contenu du tableau
	$contenu = "";
	while ( $i < count($tableau) ){
		// --- reprise de l'ensemble du fichier
		$contenu = $tableau[i];
	}
	
	// --- Il s'agit ici d'afficher le résultat de la lecture dans ta div 'lecture'
	// --- appel à une fonction javascript
	echo '<SCRIPT language="javascript">aff_fichier("'.$contenu.'")</SCRIPT>';
}

// --- Affichage de tes liens :
echo '<a href="lire_fichier(\"./exemple.txt\")">exemple.txt</a>';

// --- Affichage de ta div :
echo '<div id="lecture" name="lecture"></div>';


?>



Il faut que tu inclus les fonctions dans ton fichier script existant, là ou j'ai mis un lien, il s'agit d'un exemple, donc c'est là que tu aura ta liste de lien établi par ton précédent script, ajoute juste dans le HREF de ces liens, l'appel vers la fonction donnée ici, avec le chemin complet + nom du fichier du lien :)

Bon courage.

Messages postés
2898
Date d'inscription
dimanche 30 juillet 2006
Statut
Modérateur
Dernière intervention
5 juin 2018
469
0
Merci
Je pense que cette fonction pourra t'aider : http://php.net/readfile/

Essaye :
$contenuFichier=readfile($fichier);
echo $contenuFichier;