如何在 PHP 中从一个 URL 字符串中获取参数

Minahil Noor 2023年1月30日
  1. 在 PHP 中使用 parse_url()parse_str() 函数从一个 URL 字符串中获取参数
  2. 在 PHP 中使用 $_GET 变量从一个 URL 字符串中获取参数
如何在 PHP 中从一个 URL 字符串中获取参数

本文将介绍在 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

相关文章 - PHP String