Maison > développement back-end > tutoriel php > Comment puis-je remplacer des lignes spécifiques dans un fichier texte avec PHP ?

Comment puis-je remplacer des lignes spécifiques dans un fichier texte avec PHP ?

Linda Hamilton
Libérer: 2024-11-13 02:42:02
original
1065 Les gens l'ont consulté

How Can I Replace Specific Lines in a Text File with PHP?

Remplacement de lignes spécifiques dans un fichier texte avec PHP

Dans un fichier texte, remplacer sélectivement des lignes en fonction de la présence d'un mot particulier est une exigence commune. À cet égard, PHP propose plusieurs approches pour accomplir cette tâche.

Utilisation des fonctions de tableau pour des fichiers plus petits (tient en mémoire)

Pour les fichiers texte qui tiennent en mémoire, l'approche suivante peut être utilisée :

$data = file('myfile'); // Array of lines
function replace_a_line($data) {
    return (stristr($data, 'certain word')) ? "replacement line!\n" : $data;
}
$data = array_map('replace_a_line', $data);
file_put_contents('myfile', $data);
Copier après la connexion

Fonctions Lambda dans les versions PHP > 5.3.0 autorise une version concise :

$data = array_map(function($data) {
    return (stristr($data, 'certain word')) ? "replacement line\n" : $data;
}, $data);
Copier après la connexion

Pour les fichiers plus volumineux (à forte intensité de mémoire)

Avec des fichiers plus volumineux, l'approche ci-dessous itère ligne par ligne sans charger l'intégralité du fichier en 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);
if ($replaced) rename('myfile.tmp', 'myfile');
else unlink('myfile.tmp');
Copier après la connexion

En mettant en œuvre ces techniques, vous pouvez remplacer efficacement des lignes spécifiques dans un fichier texte basé sur une correspondance de mots.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal