Lire le fichier ligne par ligne en utilisant PHP
Sep 04, 2023 pm 06:53 PMIl y a deux raisons pour lesquelles vous pourriez vouloir lire un fichier ligne par ligne en utilisant PHP?:
- Le projet sur lequel vous travaillez nécessite que vous traitiez le fichier une ligne à la fois.
- Vous lisez un très gros fichier, et la seule fa?on de le lire sans dépasser la limite de mémoire est de le lire une ligne à la fois.
Lire des fichiers en utilisant file()
Vous pouvez utiliser la fonction file()
en PHP pour lire l'intégralité du fichier dans un tableau à la fois. Les éléments du tableau sont des lignes individuelles du fichier. Vous pourrez donc parcourir les lignes du fichier en parcourant le tableau. Cette fonction accepte trois paramètres :
- Filename?:?c'est le fichier que vous souhaitez lire. Vous pouvez également fournir une URL comme nom de fichier.
-
flags?: Il s'agit d'un paramètre facultatif qui peut être défini sur une ou plusieurs des valeurs constantes suivantes?:
FILE_USE_INCLUDE_PATH
、FILE_IGNORE_NEW_LINES
和FILE_SKIP_EMPTY_LINES
. - Context?: C'est également un paramètre facultatif utilisé pour modifier le comportement du flux.
Nous utiliserons FILE_SKIP_EMPTY_LINES
標志來跳過文件中的所有空行。您可能還想使用 FILE_IGNORE_NEW_LINES
pour supprimer les fins de ligne des lignes individuelles.
Cette fonction renvoie un tableau contenant le contenu du fichier en cas de succès et une erreur de niveau false
。如果文件不存在,您還會收到 E_WARNING
en cas d'échec. Voici un exemple d'utilisation de cette fonctionnalité.
<?php $lines = file('pride-and-prejudice.txt'); $count = 0; foreach($lines as $line) { $count += 1; echo str_pad($count, 2, 0, STR_PAD_LEFT).". ".$line; } ?>
Le résultat du code ci-dessus ressemble à ceci?:
01. The Project Gutenberg eBook of Pride and Prejudice, by Jane Austen 02. 03. This eBook is for the use of anyone anywhere in the United States and 04. most other parts of the world at no cost and with almost no restrictions 05. whatsoever. You may copy it, give it away or re-use it under the terms 06. of the Project Gutenberg License included with this eBook or online at 07. www.gutenberg.org. If you are not located in the United States, you 08. will have to check the laws of the country where you are located before 09. using this eBook. 10. 11. Title: Pride and Prejudice 12. 13. Author: Jane Austen 14. 15. Release Date: June, 1998 16. [Most recently updated: August 23, 2021]
Vous pouvez voir qu'il y a des lignes vides dans la sortie?; nous pouvons utiliser le drapeau FILE_SKIP_EMPTY_LINES
標志來擺脫它們。另外,它可能不明顯,但上面的行包含換行符。這就是為什么我們在回顯這些行時不必添加自己的換行符。您可以使用 FILE_IGNORE_NEW_LINES
pour supprimer les lignes vides.
<?php $lines = file('pride-and-prejudice.txt', FILE_SKIP_EMPTY_LINES|FILE_IGNORE_NEW_LINES); $count = 0; foreach($lines as $line) { $count += 1; echo str_pad($count, 2, 0, STR_PAD_LEFT).". ".$line; } ?>
Le résultat avec ces drapeaux ressemblera à ceci?:
01. The Project Gutenberg eBook of Pride and Prejudice, by Jane Austen 02. This eBook is for the use of anyone anywhere in the United States and 03. most other parts of the world at no cost and with almost no restrictions 04. whatsoever. You may copy it, give it away or re-use it under the terms 05. of the Project Gutenberg License included with this eBook or online at 06. www.gutenberg.org. If you are not located in the United States, you 07. will have to check the laws of the country where you are located before 08. using this eBook. 09. Title: Pride and Prejudice 10. Author: Jane Austen 11. Release Date: June, 1998 [eBook #1342] 12. [Most recently updated: August 23, 2021]
Si vous n'êtes pas préoccupé par l'utilisation de la mémoire, utiliser la fonction file()
函數(shù)是在 PHP 中逐行讀取文件的簡單方法。但是,如果內存使用成為問題,您將必須發(fā)揮更多創(chuàng)意,因為 file()
est un moyen simple de lire un fichier ligne par ligne en PHP. Cependant, si l'utilisation de la mémoire pose problème, vous devrez faire preuve de plus de créativité, car
fgets()
Lire des fichiers en utilisant
fgets()
函數(shù)。它有一個必需參數(shù),即一個有效的文件句柄。我們將使用 fopen()
Une autre fa?on de lire un fichier ligne par ligne en utilisant PHP est d'utiliser la fonction
fopen()
pour accéder au handle de fichier. Voici le code que nous voulons exécuter?:
<?php $file_handle = fopen('pride-and-prejudice.txt', 'r'); function get_all_lines($file_handle) { while (!feof($file_handle)) { yield fgets($file_handle); } } $count = 0; foreach (get_all_lines($file_handle) as $line) { $count += 1; echo $count.". ".$line; } fclose($file_handle); ?>
$file_handle
作為參數(shù)并返回一行。請注意,我們使用的是 yield
語句,并且我們的函數(shù) get_all_lines()
Dans la première ligne, nous ouvrons le fichier en mode lecture seule. Ensuite, nous définissons une fonction qui accepte comme fonction génératrice. Si vous n'avez jamais utilisé de fonctions génératrices en PHP auparavant, vous voudrez peut-être en savoir plus sur elles. 我們在 get_all_lines()
中使用 feof()
函數(shù)來檢查文件指針是否到達文件末尾。只要我們不在文件末尾,我們就會屈服。通過運行上面的代碼,您應該得到以下輸出:
1. The Project Gutenberg eBook of Pride and Prejudice, by Jane Austen 2. 3. This eBook is for the use of anyone anywhere in the United States and 4. most other parts of the world at no cost and with almost no restrictions 5. whatsoever. You may copy it, give it away or re-use it under the terms 6. of the Project Gutenberg License included with this eBook or online at 7. www.gutenberg.org. If you are not located in the United States, you 8. will have to check the laws of the country where you are located before 9. using this eBook. 10. 11. Title: Pride and Prejudice 12. 13. Author: Jane Austen 14. 15. Release Date: June, 1998 16. [Most recently updated: August 23, 2021]
輸出看起來與我們上一節(jié)中的相同。這次唯一的區(qū)別是您不再面臨內存不足的危險。
我之前提到過 fgets()
將允許您一次讀取文件的一行,并且它只需要一個指向您要讀取的文件的文件指針的參數(shù)。在這種情況下,內存消耗取決于行的長度,并且內存不足的可能性很小。
但是,假設您正在閱讀一個包含異常長行的文本文件。然后,您可以將可選的第二個參數(shù)傳遞給 fgets()
函數(shù),該函數(shù)指定要讀取的字符數(shù)。然后,它將在停止之前從文件中讀取 length - 1
字節(jié)。如果遇到新行或文件末尾,它將提前停止。這使您可以更好地控制代碼的內存消耗。
最終想法
我在本教程中討論了兩種使用 PHP 逐行讀取文件的方法。還有幾種方法可以做到這一點,但這兩種方法幾乎可以滿足您的所有需求。當內存消耗不是問題時,請使用 file()
函數(shù),如果您想節(jié)省內存,請使用 fgets()
和生成器函數(shù)。
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'entrée vocale de l'utilisateur est capturée et envoyée au backend PHP via l'API MediaRecorder du JavaScript frontal; 2. PHP enregistre l'audio en tant que fichier temporaire et appelle STTAPI (tel que Google ou Baidu Voice Recognition) pour le convertir en texte; 3. PHP envoie le texte à un service d'IA (comme Openaigpt) pour obtenir une réponse intelligente; 4. PHP appelle ensuite TTSAPI (comme Baidu ou Google Voice Synthesis) pour convertir la réponse en fichier vocal; 5. PHP diffuse le fichier vocal vers l'avant pour jouer, terminant l'interaction. L'ensemble du processus est dominé par PHP pour assurer une connexion transparente entre toutes les liens.

La méthode principale de création de fonctions de partage social dans PHP est de générer dynamiquement des liens de partage qui répondent aux exigences de chaque plate-forme. 1. Obtenez d'abord la page actuelle ou les informations d'URL et d'article spécifiées; 2. Utilisez UrLencode pour coder les paramètres; 3. épisser et générer des liens de partage en fonction des protocoles de chaque plate-forme; 4. Afficher les liens sur l'avant pour que les utilisateurs puissent cliquer et partager; 5. Générez dynamiquement des balises OG sur la page pour optimiser l'affichage du contenu du partage; 6. Assurez-vous d'échapper à la saisie des utilisateurs pour empêcher les attaques XSS. Cette méthode ne nécessite pas d'authentification complexe, a de faibles co?ts de maintenance et convient à la plupart des besoins de partage de contenu.

Pour réaliser la correction d'erreur de texte et l'optimisation de la syntaxe avec l'IA, vous devez suivre les étapes suivantes: 1. Sélectionnez un modèle ou une API d'IA appropriée, tels que Baidu, Tencent API ou bibliothèque NLP open source; 2. Appelez l'API via Curl ou Guzzle de PHP et traitez les résultats de retour; 3. Afficher les informations de correction d'erreur dans l'application et permettre aux utilisateurs de choisir d'adopter l'adoption; 4. Utilisez PHP-L et PHP_CODESNIFFER pour la détection de syntaxe et l'optimisation du code; 5. Collectez en continu les commentaires et mettez à jour le modèle ou les règles pour améliorer l'effet. Lorsque vous choisissez AIAPI, concentrez-vous sur l'évaluation de la précision, de la vitesse de réponse, du prix et du support pour PHP. L'optimisation du code doit suivre les spécifications du PSR, utiliser le cache raisonnablement, éviter les requêtes circulaires, revoir le code régulièrement et utiliser x

1. La maximisation de la valeur commerciale du système de commentaires nécessite de combiner la livraison précise de la publicité native, les services à valeur ajoutée par l'utilisateur (tels que le téléchargement d'images, les commentaires de recharge), d'influencer le mécanisme d'incitation basé sur la qualité des commentaires et la conformité de la monétisation anonyme des données de données; 2. La stratégie d'audit doit adopter une combinaison de mécanismes de filtrage des mots clés dynamiques pré-audit et de signalement des utilisateurs, complétés par une note de qualité des commentaires pour réaliser une exposition hiérarchique de contenu; 3. Anti-brosses nécessite la construction d'une défense multicouche: la vérification sans capteur RecaptChav3, le robot de reconnaissance de champ de miel, IP et la limite de fréquence d'horodatage empêchent l'arrosage, et la reconnaissance du modèle de contenu marque les commentaires suspects et itéra en continu pour traiter les attaques.

PHP assure l'atomicité de la déduction des stocks via les transactions de base de données et les verrous en ligne de Forupdate pour empêcher la survente élevée élevée en simultation; 2. La cohérence de l'inventaire multiplateforme dépend de la gestion centralisée et de la synchronisation axée sur les événements, combinant des notifications API / WebHook et des files d'attente de messages pour assurer une transmission fiable de données; 3. Le mécanisme d'alarme doit définir un faible inventaire, un inventaire zéro / négatif, des ventes invidables, des cycles de réapprovisionnement et des stratégies de fluctuations anormales dans différents scénarios, et sélectionner Dingtalk, SMS ou les personnes responsables par e-mail en fonction de l'urgence, et les informations d'alarme doivent être complètes et claires pour réaliser l'adaptation et la réponse rapide.

PhpisstillRelevantinmodernerterpriseenvironments.1.modernPhp (7.xand8.x) offre des performances, des stricts, un jitcompilation, et modernsyntax, rendant la main

Le r?le principal de Homebrew dans la construction de l'environnement Mac est de simplifier l'installation et la gestion des logiciels. 1. Homebrew gère automatiquement les dépendances et encapsule les processus de compilation et d'installation complexes en commandes simples; 2. Fournit un écosystème de package logiciel unifié pour assurer la normalisation de l'emplacement et de la configuration de l'installation logicielle; 3. Intègre les fonctions de gestion des services et peut facilement démarrer et arrêter les services via BrewServices; 4. Mise à niveau et maintenance des logiciels pratiques et améliore la sécurité et les fonctionnalités du système.

Pour construire un microservice PHP flexible, vous devez utiliser RabbitMQ pour obtenir une communication asynchrone, 1. Découplez le service via des files d'attente de messages pour éviter les défaillances en cascade; 2. Configurer des files d'attente persistantes, des messages persistants, une confirmation de libération et un ACK manuel pour assurer la fiabilité; 3. Utilisez des échecs de traitement de la sécurité de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente de la file d'attente; 4. Utilisez des outils tels que SuperVisord pour protéger les processus de consommation et permettre des mécanismes de battements cardiaques pour assurer la santé des services; et finalement réaliser la capacité du système à opérer en continu en échecs.
