Remplacement de lignes dans des fichiers texte en fonction de la correspondance de mots à l'aide de PHP
Dans les scénarios où le numéro de ligne est inconnu, remplacer des lignes spécifiques en fonction du mot l’appariement peut être une tâche difficile. Heureusement, PHP propose plusieurs approches efficaces pour résoudre cette situation :
Pour les fichiers plus petits (tient en mémoire) :
- Lisez l'intégralité du fichier dans un tableau de lignes en utilisant file('myfile').
-
Créez une fonction pour remplacer la ligne souhaitée, telle que replace_a_line($data):
- Vérifiez si la ligne contient le mot cible en utilisant stristr($data, 'certain word').
- Si elle est trouvée, renvoyez la ligne de remplacement sous forme de string.
- Sinon, renvoie la ligne d'origine.
- Appliquez la fonction de remplacement à chaque ligne de le tableau en utilisant array_map('replace_a_line', $data).
- Écrivez le tableau modifié dans le fichier en utilisant file_put_contents('myfile', $data).
-
Améliorez la méthode en utilisant les fonctions lambda pour simplifier le array_map :
- $data = array_map(function($data) { ... }, $data);
Pour les fichiers plus volumineux (mémoire intensive) :
- Ouvrez le fichier pour lire et écrire en utilisant fopen('myfile', 'r') et fopen('myfile.tmp', 'w') respectivement.
- Définissez un indicateur pour indiquer si un remplacement est effectué ($replaced).
- Lisez chaque ligne du fichier d'entrée à l'aide de fgets($reading).
- Vérifiez pour la présence du mot cible en utilisant stristr($line, 'certain word').
- Si trouvé, remplacez la ligne par le modifié version.
- Écrivez la ligne mise à jour dans le fichier de sortie à l'aide de fputs($writing, $line).
- Fermez les descripteurs de fichier après le traitement.
- Remplacez le fichier d'origine par celui modifié uniquement si un remplacement a été effectué (renommer('myfile.tmp', 'myfile')) ou supprimer le fichier temporaire si aucun remplacement n'était nécessaire (dissocier('myfile.tmp')).
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!