Maison  >  Article  >  développement back-end  >  Comment détecter les URL dans les entrées utilisateur et les comparer à un tableau prédéfini en PHP ?

Comment détecter les URL dans les entrées utilisateur et les comparer à un tableau prédéfini en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-25 05:25:02562parcourir

How to Detect URLs in User Input and Compare Them Against a Predefined Array in PHP?

Détection des URL dans les entrées utilisateur

En PHP, déterminer si une chaîne saisie par l'utilisateur contient une URL à partir d'un tableau prédéfini peut être obtenu via diverses méthodes.

Une approche consiste à utiliser la fonction in_array() de PHP. Cependant, dans le code fourni, la comparaison échoue en raison d'une incompatibilité entre les éléments de chaîne et de tableau. La chaîne contient une URL dans le cadre d'une phrase plus longue, alors que les éléments du tableau ne sont que des URL de base.

Une méthode alternative consiste à parcourir le tableau d'URL et à vérifier si chacune est présente dans la chaîne à l'aide des strpos de PHP. () fonction. Si une URL est trouvée dans la chaîne, la fonction renvoie une valeur non FAUX, indiquant une correspondance.

Voici le code modifié :

<code class="php">$string = 'my domain name is website3.com';
foreach ($owned_urls as $url) {
    if (strpos($string, $url) !== FALSE) {
        echo "Match found"; 
        return true;
    }
}
echo "Not found!";
return false;</code>

Alternativement, la fonction strstr() de PHP peut être utilisé pour des comparaisons insensibles à la casse. Cependant, strpos() est généralement préféré pour ses meilleures performances.

Pour garantir que la comparaison ne respecte pas la casse, le script peut être modifié comme suit :

<code class="php">if ( stripos($string, $url) !== FALSE ) {
    // ...
}</code>

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