Heim  >  Artikel  >  Backend-Entwicklung  >  ## Wie kann man URLs innerhalb einer Zeichenfolge mit PHP effizient erkennen?

## Wie kann man URLs innerhalb einer Zeichenfolge mit PHP effizient erkennen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-24 18:51:02594Durchsuche

## How to Efficiently Detect URLs within a String Using PHP?

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:

  1. 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.

  2. 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn