如何在 PHP 中從一個 URL 字串中獲取引數

Minahil Noor 2023年1月30日 2020年9月26日
  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