Comment rechercher efficacement une chaîne dans un fichier avec PHP ?

Linda Hamilton
Libérer: 2024-10-23 15:32:02
original
535 Les gens l'ont consulté

How to Efficiently Check for a String in a File with PHP?

Comment vérifier si un fichier contient une chaîne en PHP

Pour déterminer si une chaîne spécifique est présente dans un fichier, explorons un solution et une alternative plus efficace.

Code original :

Le code fourni tente de vérifier la présence d'une chaîne dans un fichier, désignée par la variable $id , en lisant le fichier ligne par ligne. Cependant, la condition (strpos($buffer, $id) === false) dans la boucle while vérifie de manière incorrecte l'absence de la chaîne, conduisant à la négation logique du résultat souhaité.

Solution améliorée :

Pour remédier à la situation, nous pouvons simplifier le code en utilisant la fonction file_get_contents(), qui lit l'intégralité du fichier dans une chaîne. Ensuite, la fonction strpos() peut être utilisée pour vérifier la présence de la chaîne $id au sein de cette chaîne :

<code class="php">if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) {
    // do stuff
}</code>
Copier après la connexion

En utilisant cette approche, nous évitons de parcourir le fichier ligne par ligne, ce qui permet d'économiser du temps et de la mémoire, en particulier pour les fichiers volumineux.

Méthode alternative (pour les fichiers extrêmement volumineux) :

Pour les fichiers excessivement volumineux, en s'appuyant sur des opérations sur les fichiers pour rechercher car une chaîne peut poser des problèmes de performances. Comme alternative, nous pouvons utiliser la commande grep :

<code class="php">if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) {
    // do stuff
}</code>
Copier après la connexion

Cette approche utilise l'utilitaire grep du système pour trouver la chaîne dans le fichier, réduisant ainsi la charge de travail sur le script PHP lui-même tout en offrant une efficacité comparable.

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
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!