TUTOS.EU

Afficher / lire le contenu d'un fichier en PHP

Afficher le contenu d'un fichier texte sur une page écrite en PHP

De base, on récupère le contenu d'un fichier texte avec la fonction file
Le code ci-dessous est fait pour être placé dans un fichier codé en UTF-8, pas en ANSI tel que Notepad le fait. Pour cela utilisez par exemple Notepad++

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />
		
	</HEAD>

	<BODY>

		<div id="bloc_page">
<?php

	/*
		$Emplacement est notre variable contenant le chemin dont le contenu est à afficher
		Il se présente ici sous cette forme :
			./MesFichiers/MonFichierAEffacer.txt
	*/
	
	$Emplacement = "./MesFichiers/MonFichierAEffacer.txt"
	if (file_exists($Emplacement)) {

		$lines = file($Emplacement);
		$count = count($lines);
		//echo "nbr de lignes : ".$count."<br />\n";

		echo "<textarea class=\"textareaMonDocument\" name=\"TxtContenuFichier\" id=\"TxtContenuFichier\" cols=\"100\" rows=\"".($count+2)."\" >\n"; //Debut du textarea
		foreach ($lines as $line_num => $line) {
			//echo $line; //Affichage brut de la ligne. Pas besoin d'ajouter de /n (linefeed) pour un retour à la ligne, le fichier doit déjà les contenir
			// Affiche de la ligne en la convertissant en code HMTL
			if (mb_detect_encoding($line, 'UTF-8', true) === false) {$line = utf8_encode($line);} //Codage en utf8 pour que l'affichage se passe bien sur cette page qui est en utf8
			//$line = htmlentities($line, ENT_QUOTES, "UTF-8"); //Convertit tous les caractères éligibles en entités HTML. Par exemple < devient &lt; ou encore ² devient &sup2; Pas certain que cela serve.
			echo $line;
		}
		echo "</textarea>\n"; //Debut du textarea
	}								

?>
		</div> <!-- div bloc_page -->
	</BODY>
</HTML>
Lien vers le fichier : cliquez ici Copier le code

Suivant le codage et le contenu du fichier, un traitement doit être opéré pour que cela s'affiche correctement

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>

		<meta charset="utf-8" />
		
		<LINK rel="stylesheet" type="text/css" href="../style.css">

		<title>Titre du site</title>
		<meta name="Description" content="Description du site"/>
		<meta name="author" content="Bob l'éponge" />
		<meta name="Keywords" content="a, b, c"/>

		<!-- déclaration des fichiers de scripts -->
		<script type="text/javascript" src="/js/commonscripts.js"></script>
		
	</HEAD>

	<BODY>

		<div id="bloc_page">
<?php

	//Tiré de http://www.siteduzero.com/informatique/tutoriels/les-magic-quotes-ou-guillemets-magiques/desactiver-les-magic-quotes
	//Cette option permet de retirer les magic quotes sur un serveur où c'est activé et où vous n'avez pas la main. C'est importante lorsque l'on poste récupère des valeurs de champs Input et textarea faute de quoi, par exemple, "C'est" deviendra "C\'est"
	function stripslashes_r($var) // Fonction qui supprime l'effet des magic quotes
	{
		if(is_array($var)) // Si la variable passée en argument est un array, on appelle la fonction stripslashes_r dessus
		{
			return array_map('stripslashes_r', $var);
		}
		else // Sinon, un simple stripslashes suffit
		{
			return stripslashes($var);
		}
	}

	if(get_magic_quotes_gpc()) // Si les magic quotes sont activés, on les désactive avec notre super fonction ! ;)
	{
		$_GET = stripslashes_r($_GET);
		$_POST = stripslashes_r($_POST);
		$_COOKIE = stripslashes_r($_COOKIE);
	}

	/*
		$Emplacement est notre variable contenant le chemin dont le contenu est à afficher
		Il se présente ici sous cette forme :
			./MesFichiers/MonFichierAEffacer.txt
	*/
	
	if (file_exists($Emplacement)) {

		$lines = file($Emplacement);
		$count = count($lines);
		//echo "nbr de lignes : ".$count."<br />\n";
		echo "<textarea class=\"textareaMonDocument\" name=\"TxtContenuFichier\" id=\"TxtContenuFichier\" cols=\"100\" rows=\"".($count+2)."\" >\n"; //Debut du textarea
		
		foreach ($lines as $line_num => $line) {
			//echo $line; //Affichage brut de la ligne. Pas besoin d'ajouter de /n (linefeed) pour un retour à la ligne, le fichier doit déjà les contenir
			// Affiche de la ligne en la convertissant en code HMTL
			if (mb_detect_encoding($line, 'UTF-8', true) === false) {$line = utf8_encode($line);} //Codage en utf8 pour que l'affichage se passe bien sur cette page qui est en utf8
			//$line = htmlentities($line, ENT_QUOTES, "UTF-8"); //Convertit tous les caractères éligibles en entités HTML. Par exemple < devient &lt; ou encore ² devient &sup2; Pas certain que cela serve.
			echo $line;
		}
		echo "</textarea>\n"; //Debut du textarea
	}								

?>
		</div> <!-- div bloc_page -->
	</BODY>
</HTML>
Lien vers le fichier : cliquez ici Copier le code

Article(s) suivant(s)

2