CommentCaMarche
Recherche
Posez votre question Signaler

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

jahs 15Messages postés mardi 11 juillet 2006Date d'inscription 30 novembre 2006Dernière intervention - Dernière réponse le 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.
Lire la suite 
Réponse
+8
moins plus
Plus simple :

$file='monfichier';
$contenu=file_get_contents($file);
echo "<br><br>Contenu du fichier $file : <br><pre>$contenu</pre>";
Ajouter un commentaire
Réponse
+6
moins plus
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>";
  }
}
}
?>

cakou13- 29 juil. 2009 à 12:13
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.
Répondre
Ajouter un commentaire
Réponse
+4
moins plus
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";
}
?>

Ajouter un commentaire
Réponse
+1
moins plus
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.

Ajouter un commentaire
Réponse
+0
moins plus
Je pense que cette fonction pourra t'aider : http://php.net/readfile/

Essaye :
$contenuFichier=readfile($fichier);
echo $contenuFichier;
Ajouter un commentaire
Ce document intitulé «  [PHP] Afficher le contenu d'un fichier  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.