如何在 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