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

jahs 15 Messages postés mardi 11 juillet 2006Date d'inscription 30 novembre 2006 Dernière intervention - 15 nov. 2006 à 01:20 - Dernière réponse : smed_79 1304 Messages postés dimanche 21 septembre 2008Date d'inscriptionContributeurStatut 17 mars 2017 Dernière intervention
- 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 
15Messages postés mardi 11 juillet 2006Date d'inscription 30 novembre 2006 Dernière intervention

6 réponses

+5
Utile
Plus simple :

$file='monfichier';
$contenu=file_get_contents($file);
echo "<br><br>Contenu du fichier $file : <br><pre>$contenu</pre>";
Cette réponse vous a-t-elle aidé ?  
smed_79 1304 Messages postés dimanche 21 septembre 2008Date d'inscriptionContributeurStatut 17 mars 2017 Dernière intervention - 19 janv. 2012 à 01:46
+5
Utile
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";
}
?>

Cette réponse vous a-t-elle aidé ?  
+4
Utile
1
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.
kij_82 4100 Messages postés jeudi 7 avril 2005Date d'inscriptionContributeurStatut 2 septembre 2013 Dernière intervention - 15 nov. 2006 à 10:14
+1
Utile
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.

Ssylvainsab 2883 Messages postés dimanche 30 juillet 2006Date d'inscriptionContributeurStatut 6 décembre 2017 Dernière intervention - 15 nov. 2006 à 12:52
0
Utile
Je pense que cette fonction pourra t'aider : http://php.net/readfile/

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