Maison  >  Article  >  développement back-end  >  ## Comment détecter efficacement les URL dans une chaîne à l'aide de PHP ?

## Comment détecter efficacement les URL dans une chaîne à l'aide de PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 18:51:02594parcourir

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

Détermination de la présence d'une chaîne dans un tableau

Vous souhaitez vérifier si une chaîne soumise par l'utilisateur contient des URL stockées dans un tableau prédéfini. Pour ce faire, vous avez tenté d'utiliser la fonction in_array(), mais elle renvoie systématiquement "Match not found" quelle que soit l'entrée.

Approche corrigée

Le problème réside dans l'utilisation de in_array() pour cette tâche. Cette fonction évalue la présence d'une chaîne entière dans un tableau, plutôt que de faire correspondre des valeurs partielles. Pour vérifier l'inclusion de chaînes, envisagez les alternatives suivantes :

  1. strpos() :

    <code class="php">if (strpos($string, $url) !== FALSE) {
        echo "Match found"; 
        return true;
    }</code>

    Cette fonction recherche l'occurrence de $ URL dans $string. Un résultat strpos non FAUX indique une correspondance, et les instructions echo et return signifient et renvoient en conséquence "Match found".

  2. strstr():

    <code class="php">if (strstr($string, $url)) {
        echo "Match found"; 
        return true;
    }</code>

    strstr() accomplit effectivement la même opération que strpos(). Il renvoie la partie de $string qui contient $url, et un résultat non FAUX implique à nouveau une correspondance réussie.

Itération dans le tableau

Puisque vous souhaitez vérifier plusieurs URL dans le tableau, utilisez une boucle foreach pour parcourir chaque élément :

<code class="php">foreach ($owned_urls as $url) {
    if (strpos($string, $url) !== FALSE) { // or strstr($string, $url)
        echo "Match found"; 
        return true;
    }
}</code>

Cette boucle explore chaque URL, et si une correspond à la chaîne, elle termine la boucle , affiche « Match trouvé » et renvoie vrai. Alternativement, à la conclusion sans trouver de correspondance, le script fait écho à « Not found ! » et renvoie false.

Sensibilité à la casse

Si la chaîne et les URL ne sont pas sensibles à la casse, utilisez respectivement les fonctions stripos() ou stristr(). Ces versions insensibles à la casse garantissent que les correspondances sont indépendantes de la casse.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn