Supprimer des élements dans un fichier txt

Résolu
BCS -  
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je souhaite supprimer des informer contenus dans fichier txt à partir d'un script PHP. Mes informations sont de la forme a-b-c-d-e;f-g-h-i-j;k-l-m-n-o; etc...

je souhaite d'abord vérifier si un élément donné existe, supprimer toutes les informations contenants cet éléments (c-a-d entoutré par ";" si au milieu du fichier ou sinon terminé par ";" si dé&but du fichier ou bien précédé d'un ";" si fin de fichier.

Quelle solutpar exemple si mon fichier contient les informations suivantes ion me proposez-vous ?

par exemple si mon fichier contient les informations suivantes : a-b-c-d-e;f-g-h-i-j;k-l-m-n-o et que je recherche l'élément "h", je veux supprimer tout l'arbre du "h" soit f-g-h-i-j. j'aurais donc au finale un fichier avec comme informations restantes a-b-c-d-e;k-l-m-n-o.

d'avance merci de votre aide.
A voir également:

2 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

je te propose une solution qui utilise la puissance des tableaux et te renvoie vers le manuel PHP qui t'expliquera beaucoup mieux que moi le rôle des différentes fonctions.
<?php
	function customFilter( $value )
	{
		global $forbidden;
		return is_bool( strpos( $value , $forbidden ) );
	}
	
	$lines = file( 'ton_fichier_texte.txt' );
	$forbidden = 'g';
	$new = array_filter( $lines , 'customFilter' ) );
	$text = implode( "\n" , $new );
?>

• 'file()'

'array_filter()'

'implode()'
0
bacarson Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Dalida,
merci de ta réponse. J'ai essayé ta fonction mais elle me mettait des erreurs. Je m'en suis donc inspiré pour en créer une qui fonctionne mieux et qui me fait exactement ce que je voulais. Merci pour la fonction "array_filter" que j'avais complètement zapée. ;D

<?php
function CustomFunction($var)
{

/*
fonction utilsateur qui me retourne que les éléments qui n'ont pas l'élément recherché $Pattern
*/
global $Pattern;
return !ereg($Pattern,$var);
}

function DeleteElements($Pattern,$NomFichier)
{
/*
fonction qui se charge de récupérer les éléments qui n'ont pas l'élément cherché me réinjecte les ";" jusqu'à la fin de l'avant-dernier élément
et m'écrase le contenu de mon fihier $NomFichier pour un contenu qui ne possède plus l'élément qu'on recherchait
*/
$Contenu = explode(";",file_get_contents($NomFichier));
$NewContenu = array_filter($Contenu, "CustomFunction");
$combien = count($NewContenu);

for($i = 0; $i <= $combien - 1;$i++)
{
$NewText = implode(";",$NewContenu);
}
file_put_contents($NomFichier,$NewText);
}
?>
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

bah c'est parfait ça !!!

je coche "résolu".

bon courage pour la suite !
0