Position actuelle: Accueil> Derniers articles> Quelle est la différence entre la fonction parse_url renvoyant null et false en php?

Quelle est la différence entre la fonction parse_url renvoyant null et false en php?

gitbox 2025-05-26

En PHP, la fonction PARSE_URL est un outil très pratique pour l'analyse des URL et le retour de leurs composants, tels que les protocoles, les noms d'hôtes, les chemins, etc. L'utilisation de base de la fonction est la suivante:

 $url = "https://gitbox.net/path?query=1";
$parts = parse_url($url);
print_r($parts);

Ce code publie divers composants de l'URL, tels que:

 Array
(
    [scheme] => https
    [host] => gitbox.net
    [path] => /path
    [query] => query=1
)

Cependant, parfois vous pouvez rencontrer des situations où Parse_Url renvoie nul ou faux , et vous serez perplexe: quelle est la différence entre eux? Cet article expliquera en détail la signification et les scénarios applicables de ces deux valeurs de retour.

parse_url renvoie faux

Dans PHP 7.3 et plus tôt, si le format URL entrant est extrêmement mauvais, Parse_Url reviendra faux , indiquant que l'analyse a échoué.

 $url = "ht!tp:::/invalid-url";
$result = parse_url($url);
var_dump($result);  // bool(false)

Le format URL ici n'est évidemment pas conforme aux spécifications, et la fonction ne peut pas être analysée normalement, donc False est retourné.

Résumer:

  • Le retour de faux signifie généralement que la chaîne passée ne peut pas être reconnue comme une URL ou URI légitime.

  • Cela peut être dû au fait que la chaîne contient des caractères non autorisés ou est incorrectement formaté.

parse_url renvoie null

En fait, la fonction PARSE_URL ne spécifie pas explicitement dans la documentation officielle pour retourner null . Cependant, dans certains cas spécifiques, tels que l'appel PARSE_URL et le passage dans une chaîne vide ou un type de non-chaîne, Null peut apparaître.

 $url = "";
$result = parse_url($url);
var_dump($result);  // NULL ou tableau vide,selon PHP Version

De plus, si une partie spécifique de l'URL est priée d'analyser et que cette partie n'existe pas dans l'URL, la partie correspondante de la valeur de retour sera nul .

 $url = "https://gitbox.net";
$host = parse_url($url, PHP_URL_HOST);
var_dump($host);  // string(9) "gitbox.net"

$path = parse_url($url, PHP_URL_PATH);
var_dump($path);  // NULL,parce que URL Aucune partie de chemin

Le NULL renvoyé ici est un résultat pour une pièce spécifique, indiquant que la pièce n'existe pas.

Résumer:

  • Le retour null peut être une demande de composant URL, qui n'existe pas.

  • Il se peut également qu'une chaîne vide ou un paramètre irrégulier ait été transmis, et les performances spécifiques dépendent de la version PHP.

Résumé et suggestions

Valeur de retour signification Scénarios typiques
FAUX L'URL est incorrecte et ne peut pas être analysée La chaîne d'entrée contient des caractères illégaux ou des exceptions structurelles
NUL Le composant URL demandé n'existe pas ou une chaîne vide Demander une pièce qui n'existe pas ou passer une chaîne vide

Dans le développement réel, il est recommandé:

  1. Vérifiez d'abord si la chaîne d'URL est vide ou si le format est évidemment incorrect pour éviter de passer dans des chaînes illégales.

  2. Lorsque vous appelez PARSE_URL , si seuls certains champs sont nécessaires, assurez-vous de déterminer si le résultat de retour est nul pour éviter l'erreur du programme.

  3. Avant l'analyse, vous pouvez utiliser des fonctions régulières ou filtrantes pour vérifier initialement la structure URL pour améliorer la robustesse du programme.

Par exemple:

 $url = "https://gitbox.net";

$host = parse_url($url, PHP_URL_HOST);
if ($host === null) {
    echo "URL Aucun dans host partie\n";
} else {
    echo "Host: $host\n";
}

Grâce à un jugement raisonnable, les erreurs logiques causées par Null ou False peuvent être évitées.

  • Étiquettes associées:

    NULL