如何在 PHP 中从一个 URL 字符串中获取参数
Minahil Noor
2023年1月30日
本文将介绍在 PHP 中从 URL 字符串中获取参数的方法。
- 使用
parse_url()
函数 - 使用
parse_str()
函数。 - 使用
$_GET
变量
在 PHP 中使用 parse_url()
和 parse_str()
函数从一个 URL 字符串中获取参数
我们可以使用内置函数 parse_url()
和 parse_str()
函数从一个 URL 字符串中获取参数。这两个函数一起使用来获取参数。函数 parse_url
将把 URL 划分为不同的参数。之后,parse_string
将得到所需的参数。
正确使用 parse_url()
函数的语法如下所示:
parse_url( $url, $component);
内建的函数 parse_url
有两个参数。它的详细参数如下
参数 | 说明 | |
---|---|---|
$url |
强制 | 它是我们要获取参数的 URL |
$component |
可选 | 它用于获取一个特定的 URL 组件 |
这个函数返回一个 URL 的组件。如果我们的 URL 格式不正确,函数可能会返回 False
。
使用 parse_str()
函数的正确语法如下。
parse_str( $string, $result);
内置函数 parse_str
有两个参数。它的详细参数如下。
参数名称 | 说明 | |
---|---|---|
$string |
强制 | 输入字符串,其将被转换为变量。 |
$result |
强制 | 如果传递了这个参数,变量就会存储在其中。 |
此函数不返回任何内容。
下面的程序展示了我们如何使用这些函数从一个 URL 字符串中获取参数。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
print_r($results);
?>
输出:
Array
(
[email] => abc@test.com
[name] => sarah
)
现在,如果我们只想得到电子邮件参数,我们将在程序中做如下修改。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url);
parse_str($components['query'], $results);
echo($results['email']);
?>
输出:
abc@test.com
我们也可以将 $component
参数传递给 parse_url()
函数。
<?php
$url = "https://testurl.com/test/1234?email=abc@test.com&name=sarah";
$components = parse_url($url, PHP_URL_QUERY);
//$component parameter is PHP_URL_QUERY
parse_str($components, $results);
print_r($results);
?>
输出:
Array
(
[email] => abc@test.com
[name] => sarah
)
在 PHP 中使用 $_GET
变量从一个 URL 字符串中获取参数
在 PHP 中,我们也可以使用 $_GET
变量从一个 URL 字符串中获取参数。它是一个 superglobal
变量,这意味着它在所有的作用域中都可以使用。这个变量从一个 HTML 表单中获取数据,即 URL。
假设表单中的 URL 是 _COPY10@test.com&name=sarah
。使用这个变量从 URL 字符串获取参数的程序如下。
<?php
echo $_GET['email'] . $_GET['name']
?>
输出:
abc@test.com
sarah