TUTOS.EU

Ecrire dans un fichier en PHP

Comment écrire dans un fichier en PHP

Exemple de code à placer dans un fichier UTF-8. Utilisez pour cela Notepad++ par exemple

<!DOCTYPE html>
<HTML lang="fr">
	<HEAD>
		<meta charset="utf-8" />
		<?php
			define("RacineSite","/www/");
		?>
	</HEAD>

	<BODY>

		<div id="bloc_page">
		<?php

			$NomFichier = "NomFichierACreer.txt";

			//Correction éventuelle du nom du fichier
			$NomFichier = trim($NomFichier);
			$NomFichier = strtr($NomFichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
			$NomFichier = preg_replace('/([^.a-z0-9]+)/i', '_', $NomFichier); //Tout ce qui n'est pas a-z0-9 etc..., le remplacer par _

			//Ajout de l'emplacement de création, soit ici à la racine du site. La racine du site est ici contenue dans une variable globale.
			$CheminFichier = constant('RacineSite').$Nomfichier;

			if((strlen($NomFichier) > 0) && ((strlen($CheminFichier) > 0){

				echo "Chemin du fichier à créer : ".$CheminFichier.".<br />\n";

				//Création du fichier
				$ObjFichier = fopen($CheminFichier, 'w');
				//$TxtContenuFichier = preg_replace('/\r+/',CHR(13),$TxtContenuFichier); //Pour retirer les CR en trop. Les suites de CR seront remplacées par un simple et unique CR. Bref CR CR LF deviendra CR LF.
				
				//Ecriture dans le fichier lignes
				$UneChaine = 'Ceci est une ligne à écrire';
				$UneChaine = $UneChaine.CHR(13).CHR(10); //Ajout en fin de ligne d'un CR (carriage return) + LF (line feed) pour avoir un saut de ligne compréhensible par Notepad. Mettre un \r\n doit également fonctionner.
				fputs($ObjFichier, $UneChaine); //Ecriture dans le fichier

				$UneChaine = 'Voici une autre ligne';
				$UneChaine = $UneChaine.CHR(13).CHR(10); //Ajout du saut de ligne
				fputs($ObjFichier, $UneChaine); //Ecriture dans le fichier
				
				//Fermeture du fichier
				fclose($ObjFichier);
				
				echo "Ecriture du fichier terminée.";
				echo "<br />\n";
				echo "Lien vers le fichier : <a href=\"./MonRepertoire/MonFichier.txt\" target=\"_blank\" >cliquez ici</a>";
				echo "<br />\n";
					

			}
			
		?>

		</div> <!-- div bloc_page -->
	</BODY>

</HTML>



Lien vers le fichier : cliquez ici Copier le code

Je n'ai pas testé le code suivant mais je le garde sous le coude. Il est destiné à forcer le code du fichier en UTF-8 on en ANSI par exemple.

if (mb_detect_encoding($line, 'UTF-8', true) === false) {$line = utf8_encode($line);}
$line = mb_convert_encoding($line, 'UTF-8', 'OLD-ENCODING');
Lien vers le fichier : cliquez ici Copier le code

2