Dans PHP, Stripos () est une fonction couramment utilisée pour effectuer des recherches de chaînes insensibles à des cas. Cependant, les appels fréquents à stripos () peuvent provoquer des goulots d'étranglement des performances lorsque plusieurs recherches sont nécessaires pour le même morceau de texte. Cet article partagera plusieurs techniques d'optimisation pratiques pour vous aider à appeler Stripos () à plusieurs reprises efficacement.
Lorsque vous devez rechercher plusieurs mots clés dans une chaîne fixe, vous pouvez envisager de convertir uniformément la chaîne d'origine en minuscules, afin que vous puissiez utiliser STRPOS () au lieu de StrPOS () , réduisant ainsi le traitement des cas au-dessus de la fonction à l'intérieur de la fonction.
$haystack = "PHP C'est une langue de script populaire,PHP Il est largement utilisé Web Développement。";
$haystackLower = strtolower($haystack);
$needles = ['php', 'web', 'Scénario'];
foreach ($needles as $needle) {
$pos = strpos($haystackLower, $needle);
if ($pos !== false) {
echo "Trouvé '{$needle}',Emplacement:{$pos}\n";
}
}
Avantages: meilleures performances, adaptées à une utilisation lorsqu'il existe un grand nombre de mots clés.
Si vous devez rechercher le même contenu à plusieurs reprises dans votre programme, envisagez de cache les résultats de recherche.
$cache = [];
function cachedStripos($haystack, $needle) {
global $cache;
$key = md5($haystack . '|' . $needle);
if (isset($cache[$key])) {
return $cache[$key];
}
$pos = stripos($haystack, $needle);
$cache[$key] = $pos;
return $pos;
}
// Exemple d'appel
echo cachedStripos("Bienvenue à visiter https://m66.net", "m66");
Avantages: réduisant considérablement les calculs répétitifs, adaptés aux scénarios avec un taux de répétition de données élevé.
Lorsque vous avez un grand nombre de mots clés, l'utilisation d'expressions régulières peut gérer toutes les demandes de correspondance à la fois.
$haystack = "PHP C'est une langue de script populaire,PHP Il est largement utilisé Web Développement。";
$keywords = ['php', 'web', 'Scénario'];
$pattern = '/' . implode('|', array_map('preg_quote', $keywords)) . '/i';
if (preg_match_all($pattern, $haystack, $matches)) {
echo "Mots-clés correspondants:". implode(', ', array_unique($matches[0])) . "\n";
}
Avantages: Améliorez l'efficacité et traitez plusieurs mots clés à la fois.
Dans certains scénarios commerciaux, vous ne vous souciez que du premier match. Pour le moment, la boucle doit être résiliée dès que possible pour éviter les recherches inutiles.
$haystack = "PHP C'est une langue de script populaire,PHP Il est largement utilisé Web Développement。";
$keywords = ['java', 'php', 'python'];
foreach ($keywords as $keyword) {
if (stripos($haystack, $keyword) !== false) {
echo "Le premier mot-clé trouvé est:$keyword\n";
break;
}
}
Avantages: Économisez des ressources et améliorez la vitesse de réponse.
La réutilisation aveuglément des fonctions natives lorsque StripOs () est appelée plusieurs fois peut apporter une surcharge de performance inutile. Selon différents scénarios d'utilisation, l'utilisation rationnelle du prétraitement, les mécanismes de mise en cache, l'appariement régulier et l'optimisation du flux de contrôle peuvent considérablement améliorer l'efficacité de l'exécution du code.
N'oubliez pas que le code ne doit pas seulement être écrit correctement, mais aussi efficacement. J'espère que ces conseils fournis dans cet article peuvent vous aider à écrire des programmes PHP plus élégants et efficaces dans le développement réel!