Maison  >  Article  >  développement back-end  >  Comment remplacer une ligne spécifique dans un fichier texte en utilisant PHP ?

Comment remplacer une ligne spécifique dans un fichier texte en utilisant PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 06:10:02567parcourir

How to Replace a Specific Line in a Text File Using PHP?

Remplacement d'une ligne spécifique dans un fichier texte à l'aide de PHP

Besoin de modifier un fichier texte et de se concentrer sur une ligne spécifique contenant un élément particulier mot? Plongeons dans le monde de PHP et explorons deux techniques pour remplacer facilement cette ligne.

Méthode 1 : remplacement de ligne en mémoire

Pour les fichiers plus petits qui peuvent être confortablement conservé en mémoire, vous pouvez utiliser l'approche suivante :

$data = file('myfile'); // Reads an array of lines

function replace_a_line($data) {
  if (stristr($data, 'certain word')) {
    return "replacement line!\n";
  }
  return $data;
}

$data = array_map('replace_a_line', $data);
file_put_contents('myfile', $data);

Méthode 2 : Moins gourmande en mémoire Remplacement de ligne

Pour les fichiers plus volumineux, essayez cette méthode qui économise davantage de mémoire :

$reading = fopen('myfile', 'r');
$writing = fopen('myfile.tmp', 'w');

$replaced = false;

while (!feof($reading)) {
  $line = fgets($reading);
  if (stristr($line,'certain word')) {
    $line = "replacement line!\n";
    $replaced = true;
  }
  fputs($writing, $line);
}
fclose($reading); fclose($writing);

// Don't overwrite if nothing replaced
if ($replaced) {
  rename('myfile.tmp', 'myfile');
} else {
  unlink('myfile.tmp');
}

Et voilà ! Le choix de l'approche dépend de la taille de votre fichier et de vos contraintes de mémoire. N'oubliez pas que pour les gros fichiers, la deuxième méthode est votre alliée, tandis que la première méthode excelle avec les fichiers plus petits.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn