Maison  >  Article  >  développement back-end  >  Exemple de code pour php pour obtenir les paramètres de chaque partie de l'URL

Exemple de code pour php pour obtenir les paramètres de chaque partie de l'URL

不言
不言avant
2019-04-12 11:21:442857parcourir

Ce que cet article vous apporte est un exemple de code pour php pour obtenir divers paramètres de l'URL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Le traitement des URL comprend plusieurs fonctions clés parse_url, parse_str et http_build_query

parse_url()

Cette fonction peut analyser l'URL et renvoyer ses composants. Elle s'utilise de la manière suivante :

array parse_url(string $url)

Cette fonction renvoie un tableau associatif contenant les différents composants de l'URL existante. Si l'un de ces composants est manquant, aucune entrée de tableau ne sera créée pour ce composant. Les composants sont :

  • schéma - tel que http
  • hôte - tel que localhost
  • port - tel que 80
  • utilisateur
  • passer le
  • chemin - comme /parse_str.php
  • query - après le point d'interrogation ? comme id=1&category=php&title=php-install
  • fragment - après le symbole de hachage #

Cette fonction ne signifie pas que l'URL donnée est valide, elle sépare simplement les parties de la liste ci-dessus. parse_url() accepte les URL incomplètes et essaie de les analyser correctement. Cette fonction n'a aucun effet sur les URL de chemin relatif.

<?php
    $url = "http://52php.cnblogs.com/welcome/";
    $parts = parse_url($url);
     
    print_r($parts);
?>

Le résultat de l'exécution du programme est le suivant :

Array
(
    [scheme] => http
    [host] => 52php.cnblogs.com 
    [path] => /welcome/
)
<?php
    $url = &#39;http://username:password@hostname/path?arg=value#anchor&#39;;
    print_r(parse_url($url));
    echo &#39;<br />&#39;;
    echo parse_url($url, PHP_URL_PATH);
?>

Sortie du programme :

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

Comme vous pouvez le voir, il est facile de décomposer les différentes parties d'une URL, et il est également facile d'extraire les parties spécifiées, telles que :

echo parse_url($url, PHP_URL_PATH);

est dans le deuxième paramètre, définissez comme paramètres suivants : 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.

parse_str()

parse_str est utilisé pour analyser la chaîne de requête dans l'URL, c'est-à-dire la valeur de chaîne qui peut être obtenue via $_SERVER['QUERY_STRING' ]. Si nous L'URL demandée est http://localhost/parse_str.php?id=1&category=php&title=php-install, alors la valeur renvoyée par $_SERVER['QUERY_STRING'] est id=1&category=php&title=php-install. , et ce formulaire La chaîne est analysée dans un tableau associatif à l'aide de parse_str.

s'utilise comme suit :

void parse_str(string $str [, array &$arr ])

Cette fonction reçoit deux paramètres, $str est la chaîne qui a besoin à analyser, et le paramètre facultatif $arr est le nom de la variable où la valeur du tableau générée après l'analyse est stockée. Si vous ignorez le paramètre facultatif, vous pouvez appeler directement des variables telles que $id, $category et $title. Le script ci-dessous simule une requête GET.

<?php
<a href="http://localhost/parse_str.php?id=1&category=php&title=php-install">Click Here</a>
$query_str = $_SERVER[&#39;QUERY_STRING&#39;];
parse_str($query_str); /* 这种方式可以直接使用变量$id, $category, $title */
parse_str($query_str, $query_arr);
?>
<pre class="brush:php;toolbar:false"><?php print_r($query_arr); ?>

?> /* 运行结果 */ Array ( [id] => 1 [category] => php [title] => php-install ) 1 php php-install

http_build_query consiste à convertir un tableau en url ? La chaîne de paramètres suivante sera automatiquement codée en url

string http_build_query ( array formdata [, string numeric_prefix])

Les indices suivants

s'il n'y a pas de clé spécifiée dans le tableau ou si la clé est un nombre

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer