Maison > Article > développement back-end > Algorithme naïf pour programme PHP pour la recherche de modèles
PHP (Hypertext Preprocessor) est un langage de développement Web largement utilisé comme langage de script côté serveur. Il permet aux développeurs d'intégrer du code dans des fichiers HTML pour créer des pages Web dynamiques et interagir avec des bases de données. PHP est connu pour sa simplicité, sa polyvalence et ses capacités d'intégration étendues avec les bases de données populaires. Il offre une large gamme d'extensions et dispose d'une large communauté de développeurs garantissant des ressources et un support abondants.
L'algorithme Naive, également connu sous le nom d'algorithme Brute Force, est un simple algorithme de recherche de modèles utilisé pour trouver les occurrences d'un modèle dans un texte. Il est appelé « naïf » car il n'utilise aucune structure de données sophistiquée ni technique avancée.
Dans le contexte de PHP, l'algorithme Naive est implémenté comme une fonction qui accepte deux paramètres : le texte à rechercher et le modèle à rechercher. L'algorithme fonctionne en parcourant le texte, en comparant chaque caractère au caractère correspondant dans le modèle. Si un caractère ne correspondant pas est trouvé, il passe au caractère suivant dans le texte et recommence la comparaison. Si un caractère correspondant est trouvé, il continuera à comparer les caractères suivants jusqu'à ce que l'intégralité du motif corresponde ou qu'une incompatibilité se produise.
<?php function searchPattern($text, $pattern) { $textLength = strlen($text); $patternLength = strlen($pattern); $foundIndexes = array(); // Array to store the found indexes // Iterate through the text for ($i = 0; $i <= $textLength - $patternLength; $i++) { $j = 0; // Check for a match at the current position while ($j < $patternLength && $text[$i + $j] == $pattern[$j]) { $j++; } // If a match is found, add the starting index to the array if ($j == $patternLength) { $foundIndexes[] = $i; } } return $foundIndexes; } // Example usage $text = "ABCABCABCABC"; $pattern = "CA"; $indexes = searchPattern($text, $pattern); if (!empty($indexes)) { echo "Pattern found at indexes: " . implode(", ", $indexes); } else { echo "Pattern not found"; } ?>
Pattern found at indexes: 2, 5, 8
Le code implémente l'algorithme Naive pour la recherche de modèles en PHP. La fonction searchPattern prend deux paramètres : $text (le texte d'entrée) et $pattern (le modèle à rechercher). le texte et le motif sont déterminés à l'aide de la fonction strlen. Un tableau vide appelé $foundIndexes est créé pour stocker les index où le motif se trouve dans le texte.
La fonction parcourt ensuite le texte à l'aide d'une boucle for, en comparant chaque caractère avec le caractère correspondant dans le modèle. Si une correspondance est trouvée, elle continue de comparer les caractères suivants jusqu'à ce que le modèle entier corresponde ou qu'une incompatibilité se produise. correspondance est trouvée, l'index de départ est ajouté au tableau $foundIndexes.
Dans l'exemple d'utilisation, la fonction est appelée avec un exemple de texte "ABCABCABCABC" et un modèle "CA". Le résultat est l'index dans le texte auquel le modèle « CA » a été trouvé. Dans l'ensemble, ce code montre une implémentation de base de l'algorithme Naive en PHP pour rechercher un modèle dans un texte donné et renvoyer l'index d'occurrence du modèle.
Le programme PHP fourni implémente l'algorithme Naive pour la recherche de modèles. Il recherche dans le texte un modèle donné en le comparant caractère par caractère. L'algorithme parcourt le texte et vérifie une correspondance à chaque position. Si une correspondance est trouvée, il ajoute l'index de départ à un tableau. Le programme renvoie tous les indices trouvés ou indique que le modèle n'a pas été trouvé. Bien que la complexité temporelle de l'algorithme Naive soit O(m * n), où m est la longueur du modèle et n la longueur du texte, il constitue une méthode simple et simple pour les tâches de recherche de modèles à petite échelle en PHP.
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!