In PHP ist Stripos () eine häufig verwendete Funktion für die von Fall unempfindlichen String-Lookups. Häufige Aufrufe bei Stripos () können jedoch Leistungsengpässe verursachen, wenn für das gleiche Textstück mehrere Lookups erforderlich sind. In diesem Artikel wird mehrere praktische Optimierungstechniken ausgetauscht, mit denen Sie Stripos () mehrmals effizient anrufen können.
Wenn Sie in einer festen Zeichenfolge nach mehreren Schlüsselwörtern suchen müssen, können Sie die ursprüngliche Zeichenfolge einheitlich in Kleinbuchstaben konvertieren, sodass Sie Strpos () anstelle von strPos () verwenden können, wodurch der Fallverarbeitungsaufwand innerhalb der Funktion verringert wird.
$haystack = "PHP Es ist eine beliebte Skriptsprache,PHP Es wird weit verbreitet Web Entwicklung。";
$haystackLower = strtolower($haystack);
$needles = ['php', 'web', 'Skript'];
foreach ($needles as $needle) {
$pos = strpos($haystackLower, $needle);
if ($pos !== false) {
echo "Gefunden '{$needle}',Standort:{$pos}\n";
}
}
Vorteile: Bessere Leistung, geeignet für die Verwendung, wenn eine große Anzahl von Schlüsselwörtern vorhanden ist.
Wenn Sie in Ihrem Programm wiederholt nach demselben Inhalt suchen müssen, sollten Sie die Suchergebnisse untersuchen.
$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;
}
// Beispielanruf
echo cachedStripos("Willkommen zu Besuch https://m66.net", "m66");
Vorteile: Reduzierte sich wiederholende Berechnungen erheblich, geeignet für Szenarien mit hoher Datenwiederholungsrate.
Wenn Sie eine große Anzahl von Schlüsselwörtern haben, kann die Verwendung regulärer Ausdrücke alle übereinstimmenden Anforderungen gleichzeitig verarbeiten.
$haystack = "PHP Es ist eine beliebte Skriptsprache,PHP Es wird weit verbreitet Web Entwicklung。";
$keywords = ['php', 'web', 'Skript'];
$pattern = '/' . implode('|', array_map('preg_quote', $keywords)) . '/i';
if (preg_match_all($pattern, $haystack, $matches)) {
echo "Matchierte Schlüsselwörter:". implode(', ', array_unique($matches[0])) . "\n";
}
Vorteile: Verbessern Sie die Effizienz und verarbeiten Sie mehrere Keywords gleichzeitig.
In einigen Geschäftsszenarien kümmern Sie sich nur um das erste Spiel. Zu diesem Zeitpunkt sollte die Schleife so bald wie möglich beendet werden, um unnötige Suchanfragen zu vermeiden.
$haystack = "PHP Es ist eine beliebte Skriptsprache,PHP Es wird weit verbreitet Web Entwicklung。";
$keywords = ['java', 'php', 'python'];
foreach ($keywords as $keyword) {
if (stripos($haystack, $keyword) !== false) {
echo "Das erste gefundene Schlüsselwort ist:$keyword\n";
break;
}
}
Vorteile: Ressourcen sparen und die Reaktionsgeschwindigkeit verbessern.
Blind Wiederverwendung nativer Funktionen, wenn Stripos () mehrmals als unnötige Leistungsaufwand bezeichnet wird. Abhängig von unterschiedlichen Nutzungsszenarien kann die rationale Verwendung von Vorverarbeitung, Caching -Mechanismen, regelmäßige Anpassung und Steuerflussoptimierung die Code -Ausführungseffizienz erheblich verbessern.
Denken Sie daran, der Code sollte nicht nur korrekt, sondern auch effizient geschrieben werden. Ich hoffe, diese Tipps in diesem Artikel können Ihnen helfen, elegantere und effizientere PHP -Programme in der tatsächlichen Entwicklung zu schreiben!