Position actuelle: Accueil> Derniers articles> Comment utiliser StrnatcasecMP pour la correspondance insensible à la casse dans l'entrée de formulaire?

Comment utiliser StrnatcasecMP pour la correspondance insensible à la casse dans l'entrée de formulaire?

gitbox 2025-05-19

Dans PHP, StrnatcasecMP est une fonction de comparaison de chaînes utilisé pour le tri naturel. Il permet non seulement une comparaison insensible aux chaînes, mais prend également en compte le tri naturel des nombres. Contrairement à la fonction StrcasecMP traditionnelle, StrnatcasecMP est plus intelligent et peut gérer les chaînes contenant des nombres (comme "A10" sera considéré comme plus grand que "A2"). Cette fonction le rend idéal pour la correspondance ou le tri des entrées de formulaire.

Quelle est la fonction strnatcasecmpMP?

Le prototype de la fonction strnatcasecmp est le suivant:

 int strnatcasecmp ( string $str1 , string $str2 )
  • $ STR1 et $ STR2 sont deux chaînes à comparer.

  • Cette fonction ignore les différences de cas et effectue des comparaisons d'ordre naturel.

  • Si $ STR1 est inférieur à $ STR2 , un nombre négatif est retourné; S'il est égal, un 0; Si $ STR1 est supérieur à $ STR2 , un nombre positif est retourné.

Utiliser des scénarios

Supposons que vous ayez un formulaire où l'utilisateur a saisi certaines données de chaîne, et vous devez faire des comparaisons insensibles à ces entrées, telles que la découverte si l'entrée de l'utilisateur correspond à certaines données existantes. À l'heure actuelle, StrnatcasecMP est un choix idéal.

Exemple de code

Supposons que nous ayons un formulaire où l'utilisateur entre un mot-clé de requête, et nous devons trouver les éléments qui correspondent au mot clé via PHP. Nous utilisons StrnatcasecMP pour la correspondance insensible à la casse.

Partie de la forme (html)

 <form method="POST" action="process.php">
    <label for="search">Veuillez saisir les mots clés:</label>
    <input type="text" id="search" name="search">
    <button type="submit">soumettre</button>
</form>

Code PHP pour le traitement du formulaire Entrée (process.php)

 <?php
// 获取用户soumettre的表单数据
$searchTerm = isset($_POST['search']) ? $_POST['search'] : '';

// Supposons que nous ayons une liste à égaler
$items = [
    'apple',
    'banana',
    'cherry',
    'Apple pie',
    'Banana split'
];

// Traversion de la liste à faire correspondre,utiliser strnatcasecmp Faire un match
$matches = [];
foreach ($items as $item) {
    // utiliser strnatcasecmp Faire une correspondance insensible à la cas
    if (strnatcasecmp($item, $searchTerm) == 0) {
        $matches[] = $item;
    }
}

// Résultats de correspondance de sortie
if (!empty($matches)) {
    echo "Trouver un match:<br>";
    foreach ($matches as $match) {
        echo $match . "<br>";
    }
} else {
    echo "未Trouver un match。";
}
?>

Explication du code

  1. Obtenez la saisie des utilisateurs:
    Dans le formulaire, les mots clés entrés par l'utilisateur sont soumis à Process.php via la méthode post. Dans le fichier PHP, nous obtenons le terme de requête entré par l'utilisateur via $ _post ['search'] .

  2. Traversion des articles à faire correspondre:
    Supposons que nous ayons une liste d' articles $ à égaler avec différents noms de fruits. Nous parcourons ces éléments via Forach et utilisons StrnatcasecMP pour des comparaisons de tri naturelles insensibles à la caisse.

  3. Logique correspondante:
    Si strnatcasecmpMP ($ item, $ searchterm) == 0 , cela signifie que l' élément $ actuel et la saisie de l'entrée de l'utilisateur correspondent exactement à (cas insensible). Ajoutez des articles correspondants au tableau $ correspond .

  4. Résultat de sortie:
    Si le tableau $ correspond n'est pas vide, cela signifie qu'un élément correspondant a été trouvé et nous sortira le contenu correspondant un par un. Si aucune correspondance n'est trouvée, le message rapide est sorti.

Gérer le remplacement du nom de domaine dans l'URL

Si votre application implique des URL et doit remplacer le nom de domaine dans le code, vous pouvez utiliser la fonction STR_REPLACE pour remplacer le nom de domaine. Par exemple, supposons que vous ayez l'URL suivante:

 $url = "http://www.example.com/page";
$updatedUrl = str_replace("www.example.com", "gitbox.net", $url);
echo $updatedUrl;

Sortir:

 http://gitbox.net/page

De cette façon, vous pouvez vous assurer de remplacer le nom de domaine de l'URL par gitbox.net , qui convient à n'importe quel scénario où le nom de domaine doit être remplacé.