Maison  >  Article  >  développement back-end  >  Comment supprimer n'importe quelle ligne d'un fichier en php

Comment supprimer n'importe quelle ligne d'un fichier en php

王林
王林original
2020-11-10 10:48:052831parcourir

Comment supprimer n'importe quelle ligne d'un fichier en PHP : lisez d'abord le fichier dans le tableau ligne par ligne ; puis parcourez le tableau et ajoutez la valeur de chaque élément du tableau à la chaîne à enregistrer. traité Les lignes à supprimer ne sont pas lues ; il suffit de sauvegarder le fichier à la fin.

Comment supprimer n'importe quelle ligne d'un fichier en php

Lisez le fichier dans le tableau ligne par ligne, puis parcourez le tableau et ajoutez la valeur de chaque élément du tableau à la chaîne à enregistrer. traité, la valeur correspondant à l'élément du tableau de la ligne à supprimer n'est pas lue et le fichier est finalement enregistré.

(Recommandation vidéo d'apprentissage : Tutoriel vidéo Java)

Méthode d'implémentation :

$num=2;
//要删除的行序号 
$fp=file("test.txt"); 
$total=count($fp); 
//取得文件总行数 
foreach ($fp as $line) { 
//按行分解内容并 
$tmp[]=$line; 
//逐行写入数组 
} 
for($i=0;$i<$total;$i++){ 
//若$i的值不等于要删除的行序号 
if($i<>$num) 
$savestr.=$tmp[$i]; 
} 
//写入文件 
$fp=fopen("test.txt","w"); 
fwrite($fp,$savestr); 
fclose($fp);

Exécutez le programme PHP ci-dessus, il supprimera le test.txt fichier Ligne 3. Le numéro de séquence de ligne du fichier commence à 0, et non à 1 comme nous le comprenons habituellement, qui est le même que le numéro d'indice de l'élément du tableau.

Il y a une question qui doit être clarifiée, qui est ce qu'on appelle le concept « d'action ». Utilisons le Bloc-notes pour écrire un fichier. Une fois qu'une ligne est terminée, nous appuyons sur Entrée ou ne tapons pas. Après avoir enregistré le fichier, le fichier aura une ligne, puis appuyez sur Entrée, puis tapez une autre ligne. le fichier aura deux lignes après avoir enregistré OK. Dans le Bloc-notes, lorsque nous définissons le format sur "auto wrap", une ligne de texte sera automatiquement renvoyée à la ligne lorsqu'elle atteint l'extrémité droite, mais il ne s'agit pas de deux lignes, mais d'une seule ligne.

Dans le Bloc-notes, quelle que soit la quantité de texte qu'il y a, et peu importe que le format soit "retour à la ligne automatique", s'il n'y a pas de caractère de retour chariot, il ne peut s'agir que d'une seule ligne. En d'autres termes, la marque de ligne est le caractère de retour chariot (noté ""rn"" en PHP).

En modifiant le programme ci-dessus, nous pouvons également facilement supprimer toutes les lignes vides du fichier (lignes avec uniquement des espaces + retours chariot ou retours chariot uniquement) : utilisez trim lors du parcours du tableau et de la lecture de la chaîne enregistrée. Vérifiez chaque élément du tableau

for($i=0;$i<$total;$i++){ if(trim($tmp[$i])<>"") $savestr.=$tmp[$i]; }

Ce programme supprimera toutes les lignes vides du fichier, mais si la dernière ligne du fichier est une ligne vide, il effacera ses caractères d'espacement (le cas échéant) et conservera un retour chariot caractère (qui est traité comme un pointeur vers la fin du fichier).

Recommandations associées : formation php

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