Maison >développement back-end >tutoriel php >Comment rechercher efficacement des chaînes dans des fichiers avec 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!