parse_url Analyse une URL et retourne ses composants &reftitle.description; intstringarraynullfalseparse_url stringurl intcomponent-1 Cette fonction analyse une URL et retourne un tableau associatif contenant tous les éléments qui y sont présents. Les valeurs des éléments du tableau NE sont PAS URL décodés Cette fonction n'est pas faite pour valider l'URL fournie, elle ne fait que la découper en parties listées ci-dessous. Les URL partielles et invalides sont également acceptées, la fonction parse_url fera de son mieux pour les analyser correctement. &reftitle.parameters; url L'URL à analyser. component Peut être une des constantes parmi PHP_URL_SCHEME, PHP_URL_HOST, PHP_URL_PORT, PHP_URL_USER, PHP_URL_PASS, PHP_URL_PATH, PHP_URL_QUERY ou PHP_URL_FRAGMENT pour récupérer uniquement une partie de l'URL en tant que chaîne de caractères (sauf lorsque PHP_URL_PORT est fourni ; dans ce cas, la valeur retournée sera un &integer;). &reftitle.returnvalues; Pour les URL vraiment mal formées, parse_url peut retourner &false;. Si le paramètre component est omis, un array associatif est retourné. Au moins un élément sera présent dans le tableau. Voici les clés potentielles de ce tableau: scheme - e.g. http host port user pass path query - après le point d'interrogation "?" fragment - après le croisillon (dièse) "#" Si le paramètre component est spécifié, parse_url retourne une string (ou un &integer; dans le cas d'utilisation de la constante PHP_URL_PORT)au lieu d'un array. Si le composant demandé n'existe pas dans l'URL, &null; sera retourné. À partir de PHP 8.0.0, parse_url distingue entre les fragments et requêtes absentes et vides : Précédemment tout les cas résultaient en la requête et le fragment étant &null;. À noter que les caractères de contrôle (cf. ctype_cntrl) dans les composants sont remplacés par un tiret du bas (_). &reftitle.changelog; &Version; &Description; 8.0.0 parse_url distingue désormais entre les fragments et requêtes absentes et vides. &reftitle.examples; Exemple avec <function>parse_url</function> ]]> &example.outputs; string(4) "http" ["host"]=> string(8) "hostname" ["port"]=> int(9090) ["user"]=> string(8) "username" ["pass"]=> string(8) "password" ["path"]=> string(5) "/path" ["query"]=> string(9) "arg=value" ["fragment"]=> string(6) "anchor" } string(4) "http" string(8) "username" string(8) "password" string(8) "hostname" int(9090) string(5) "/path" string(9) "arg=value" string(6) "anchor" ]]> Exemple avec la fonction <function>parse_url</function> sans schéma ]]> &example.outputs; string(15) "www.example.com" ["path"]=> string(5) "/path" ["query"]=> string(17) "googleguy=googley" } ]]> &reftitle.notes; Cette fonction peut ne pas donner des résultats corrects pour les URLs relatives ou invalides et les résultats peuvent ne pas correspondre au comportement standard des clients HTTP. Si des URLs venant d'entré utilisateur doivent être analysé, des vérifications supplémentaires sont requises, par exemple en utilisant filter_var avec le filtre FILTER_VALIDATE_URL. parse_url a été créée tout spécialement pour analyser les URL et non les URI. Cependant, pour des raisons de compatibilité adjacente, PHP fait une exception pour le schéma file:// où les triples slashs (file:///...) sont autorisés. Tous les autres schémas sont invalides. &reftitle.seealso; pathinfo parse_str http_build_query dirname basename RFC 3986