fichier - php à propos des opérations sur les fichiers - lire une ligne, traiter une ligne puis supprimer la ligne
PHP中文网
PHP中文网 2017-06-26 10:49:01
0
3
921

1. Il y a maintenant un fichier de 300 Mo. Les données qu'il contient doivent être lues ligne par ligne et traitées pour chaque ligne (elles ne peuvent pas être rendues idempotentes). Mais j'ai peur que le système raccroche pendant le traitement, et je ne sais pas quelle ligne relire. J'ai peur que les lignes qui ont été traitées auparavant le soient à nouveau 2. La solution à laquelle je pense. Il s'agit maintenant de lire une ligne, de traiter une ligne et de supprimer la ligne immédiatement. Le programme se bloque, et si vous l'exécutez à nouveau et lisez depuis le début, vous ne pourrez pas lire les lignes précédemment traitées. tous les experts ont de bonnes solutions. Merci.
//Je souhaite lire une ligne et supprimer une ligne. Comment dois-je procéder ou existe-t-il une meilleure solution pour éviter d'exécuter la même ligne deux fois ?

$fp = fopen($fileName, "r");
if (!$fp) {
    return -1;
}
$max = 40960; //40k

while (!feof($fp)) {
    $line = fgets($fp, $max);
    }
PHP中文网
PHP中文网

认证0级讲师

répondre à tous(3)
淡淡烟草味

Puisqu'il est stipulé de lire ligne par ligne, pourquoi ne pas écrire un script pour diviser le fichier en plusieurs petits fichiers (notez le nom, comme la commande Linux 中的 split), puis écrire un script pour boucler l'opération de lecture.

伊谢尔伦

Je pense que vous pouvez obtenir l'effet souhaité d'une autre manière : vous pouvez lire une ligne et, après avoir traité la ligne, ajouter un symbole spécial après la ligne. Une boucle sur chaque ligne vous indiquera quelles lignes ont été traitées. Si votre programme se bloque, lorsque vous l'exécutez à nouveau, recherchez directement le dernier endroit où le symbole spécial est apparu. Ensuite, la ligne suivante est l'endroit où vous devez commencer l'exécution.

ringa_lee

Écrivez un fichier séparé pour enregistrer l'emplacement de traitement. Vous pouvez également enregistrer le numéro de ligne et le décalage de l'ensemble du fichier.

Changer de fichiers pendant la lecture est trop lent.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal