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.
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é.
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.
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é:
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.
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.
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