如何在 PHP 中从一个 URL 字符串中获取参数
Minahil Noor
2023年1月30日
PHP
PHP String
本文将介绍在 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
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe