TUTOS.EU

Effacer un fichier en PHP

Code pour effacer un fichier en PHP

Code pour effacer un fichier

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

	<BODY>

		<div id="bloc_page">
		<?php
			//ctrl+g pour accéder à la dite ligne avec notepad++
			
			$CheminFichier = "/Racine_du_site/MonRepertoire/NomDorigine.txt";
			if (file_exists($CheminFichier)) {
				if (!unlink($CheminFichier)){echo "Problème lors de l'effacement de $CheminFichier<br />\n";}
				else {echo "Fichier $CheminFichier effacé.<br />\n";}
			}
			else {echo "Le fichier $CheminFichier n'a pas été trouvé.<br />\n";}
			
		?>

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

</HTML>
Lien vers le fichier : cliquez ici Copier le code

Pour effacer un fichier, son emplacement doit être indiqué par rapport à la racine du site web sur votre serveur. Exemple :
/home/www/MesFichiers/MonFichierAEffacer.txt

Cependant vous pouvez être amené à effacer un fichier dont l'emplacement contient l'url de votre site.
Exemple :
http://www.tutos.eu/MesFichiers/monfichier.txt

Il faut donc traiter au préalable votre variable contenant l'emplacement du fichier et dont le chemin peut être relatif comme :
./MesFichiers/MonFichierAEffacer.txt

<!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

	//Définition des constantes
	define("RacineSite","/home/www/"); //Stockage dans une constante de l'emplacement physique sur le serveur web de la racine de votre site web
	define("MonUrlCible","http://www.tutos.eu"); //Stockage dans une constante de l'url racine de votre site web

	//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);
	}

	/*
	$EmplacementFichier est notre variable contenant le chemin du fichier à effacer
	$EmplacementFichier peut être de la forme
		http://www.tutos.eu/MesFichiers/monfichier.txt
	Ou
		./MesFichiers/MonFichierAEffacer.txt
	*/
	
	$RacineSite = constant('RacineSite'); //Récupération et stockage dans une variable du chemin de l'emplacement racine de votre site web
	if (substr($EmplacementFichier,0,strlen(constant('MonUrlCible'))) == constant('MonUrlCible')){ //Si l'URL commence par l'URL du site
		//echo "Chemin avant remplacement : $EmplacementFichier<br />\n";
		//On retire l'URL du site + 1 caractère qui correspond à un /   Imaginez que $EmplacementFichier contienne http://www.tutos.eu/MesFichiers/monfichier.txt, pour ne garder que MesFichiers/monfichier.txt il faut retirer http://www.tutos.eu/
		$EmplacementFichier = substr($EmplacementFichier,strlen(constant('MonUrlCible'))+1);
		//echo "Chemin après remplacement : $EmplacementFichier<br />\n";
		$EmplacementFichier = $RacineSite.$EmplacementFichier; //On ajoute le chemin de la racine du site. Dans notre exemple cela donnerai au final /home/www/MesFichiers/monfichier.txt
		//echo "Avec ajout racine : $EmplacementFichier<br />\n";
	}
	else{ //Si on ne traite pas un chemin de fichier qui commence par l'url du site
		//On part ici du principe que $EmplacementFichier contient un chemin du type ./MesFichiers/MonFichierAEffacer.txt
		$RacineSite = substr($RacineSite,0,-1); //On retire le dernier caractère;  $RacineSite contenait /home/www/    On retire dont le / de /home/www/ ce qui donnera /home/www
		//echo "RacineSite : ".$RacineSite."<br />\n";
		
		$EmplacementFichier = substr($EmplacementFichier,1); //On retire le premier caractère qui est un point ./MesFichiers/MonFichierAEffacer.txt devient donc /MesFichiers/MonFichierAEffacer.txt
		$EmplacementFichier = $RacineSite.$EmplacementFichier; //On ajoute le chemin de la racine du site. On aura donc /home/www/MesFichiers/MonFichierAEffacer.txt
	}

	if (file_exists($EmplacementFichier)) {
		if (!unlink($EmplacementFichier)){echo "Problème lors de l'effacement de $EmplacementFichier<br />\n";}
		else {echo "Fichier $EmplacementFichier effacé.<br />\n";}
	}
	else {echo "Le fichier $EmplacementFichier n'a pas été trouvé.<br />\n";}
	
?>
		</div> <!-- div bloc_page -->
	</BODY>
</HTML>
Lien vers le fichier : cliquez ici Copier le code

2