Maison  >  Article  >  développement back-end  >  Comment rechercher efficacement des chaînes dans des fichiers avec PHP

Comment rechercher efficacement des chaînes dans des fichiers avec PHP

Susan Sarandon
Susan Sarandonoriginal
2024-10-23 16:36:02458parcourir

How to Efficiently Search for Strings in Files with PHP

Rechercher des chaînes dans des fichiers avec PHP

Dans le développement Web, il est souvent nécessaire de vérifier si une chaîne spécifique est présente dans un fichier. Cet article montre une méthode pour accomplir cette tâche en PHP.

Énoncé du problème

Le code PHP suivant tente de vérifier si un fichier contient une chaîne envoyée à la page via une requête GET. Cependant, il renvoie des résultats incorrects :

<code class="php">    // ...
    while (($buffer = fgets($handle)) !== false) {
        if (strpos($buffer, $id) === false)
            $valid = TRUE;
    }
    // ...</code>

Solution 1 : file_get_contents()

Une approche plus efficace consiste à utiliser la fonction file_get_contents(), qui charge le fichier entier en mémoire :

<code class="php">    if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) {
        // ...
    }</code>

Solution 2 : exec()

Pour les fichiers volumineux, il est préférable d'utiliser exec() pour éviter d'éventuels problèmes de mémoire :

<code class="php">    if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) {
        // ...
    }</code>

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