Maison >développement back-end >Problème PHP >Comment supprimer n'importe quelle ligne d'un fichier en php ?

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

coldplay.xixi
coldplay.xixioriginal
2020-07-10 10:49:452696parcourir

Comment supprimer n'importe quelle ligne d'un fichier en PHP : lisez d'abord le fichier ligne par ligne dans le tableau ; puis parcourez le tableau et ajoutez la valeur de chaque élément du tableau à la chaîne à enregistrer ; lors du traitement de l'élément de tableau correspondant de la ligne supprimée, il suffit de sauvegarder le fichier à la fin.

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

Comment supprimer n'importe quelle ligne du fichier en php :

Idées d'implémentation :

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 lorsque l'élément du tableau correspond à la ligne à enregistrer. supprimé est traité, il n'est pas lu, il enregistre enfin le fichier.

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 la troisième ligne du fichier test.txt. 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 "Automatic Wrap", une ligne de texte sera automatiquement renvoyée à la ligne lorsqu'elle atteint l'extrémité droite, mais ce n'est pas deux lignes, ce n'est toujours qu'une seule ligne. Dans le Bloc-notes, quelle que soit la quantité de texte et que le format soit "auto-wrap" ou non, 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 Vérifiez chaque élément du tableautrim

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 chariot. caractère de retour (qui est utilisé comme pointeur vers la fin du fichier).

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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