Bestimmen der Zeichenfolgenpräsenz innerhalb eines Arrays
Sie möchten überprüfen, ob eine vom Benutzer übermittelte Zeichenfolge URLs enthält, die in einem vordefinierten Array gespeichert sind. Zu diesem Zweck haben Sie versucht, die Funktion in_array() zu verwenden, diese gibt jedoch unabhängig von der Eingabe stets „Übereinstimmung nicht gefunden“ zurück.
Korrigierter Ansatz
Das Problem liegt in der Verwendung von in_array() für diese Aufgabe. Diese Funktion bewertet das Vorhandensein einer gesamten Zeichenfolge innerhalb eines Arrays, anstatt Teilwerte abzugleichen. Um die Einbeziehung von Zeichenfolgen zu überprüfen, ziehen Sie die folgenden Alternativen in Betracht:
strpos():
<code class="php">if (strpos($string, $url) !== FALSE) { echo "Match found"; return true; }</code>
Diese Funktion sucht nach dem Vorkommen von $ URL innerhalb von $string. Ein nicht FALSE strpos-Ergebnis weist auf eine Übereinstimmung hin, und die echo- und return-Anweisungen bedeuten entsprechend „Übereinstimmung gefunden“ und geben diese zurück.
strstr():
<code class="php">if (strstr($string, $url)) { echo "Match found"; return true; }</code>
strstr() führt effektiv den gleichen Vorgang aus wie strpos(). Es gibt den Teil von $string zurück, der $url enthält, und ein Nicht-FALSE-Ergebnis impliziert wiederum eine erfolgreiche Übereinstimmung.
Durchlaufen des Arrays
Da Sie mehrere URLs im Array prüfen möchten, verwenden Sie eine foreach-Schleife, um jedes Element zu durchlaufen:
<code class="php">foreach ($owned_urls as $url) { if (strpos($string, $url) !== FALSE) { // or strstr($string, $url) echo "Match found"; return true; } }</code>
Diese Schleife durchsucht jede URL und beendet die Schleife, wenn eine mit der Zeichenfolge übereinstimmt , zeigt „Übereinstimmung gefunden“ an und gibt „true“ zurück. Wenn Sie den Vorgang abschließen, ohne eine Übereinstimmung zu finden, gibt das Skript alternativ „Nicht gefunden!“ aus. und gibt false zurück.
Groß-/Kleinschreibung beachten
Wenn bei der Zeichenfolge und den URLs die Groß-/Kleinschreibung nicht beachtet wird, verwenden Sie die Funktionen „stripos()“ bzw. „stristr()“. Diese Versionen, bei denen die Groß-/Kleinschreibung nicht beachtet wird, stellen sicher, dass die Übereinstimmungen unabhängig von der Groß-/Kleinschreibung sind.
Das obige ist der detaillierte Inhalt von## Wie kann man URLs innerhalb einer Zeichenfolge mit PHP effizient erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!