PHP - URL parse_url() 函式



PHP URL parse_url() 函式用於解析 URL 並返回其組成部分。解析 URL 後,此方法提供一個關聯陣列,其中包含 URL 的所有不同部分。陣列元素的值不會從 URL 解碼。

此函式只是將給定的 URL 分解成下面給出的部分,它並非用於驗證 URL 本身。雖然 parse_url() 會盡力正確解析 URL,但也會接受部分和不正確的 URL。

語法

以下是 PHP URL parse_url() 函式的語法:

mixed parse_url(string $url, int $component = -1)

引數

以下是 parse_url() 函式的引數:

  • $url − 要解析的 URL。

  • $component − 指定 PHP_URL_SCHEME、PHP_URL_HOST、PHP_URL_PORT、PHP_URL_USER、PHP_URL_PASS、PHP_URL_PATH、PHP_URL_QUERY 或 PHP_URL_FRAGMENT 之一,以獲取特定 URL 組成部分作為字串。如果沒有給出,則返回所有組成部分的陣列。

返回值

如果未指定任何組成部分,則此函式基本上返回一個關聯陣列;如果給出了組成部分,則返回一個字串(埠為整數)。失敗則返回 FALSE。

PHP 版本

parse_url() 方法最初作為 PHP 4 的核心部分引入,並且與 PHP 5、PHP 7、PHP 8 相容。

示例 1

這是 PHP URL parse_url() 函式的基本示例,用於將完整的 URL 解析為其組成部分。結果將是一個包含方案、主機、路徑和查詢等部分的陣列。

<?php
   // Mention the URL here
   $url = "https://www.tutorix.com:8080/path/to/page?name=ferret&color=purple#section2";
   $parsed_url = parse_url($url);
   print_r($parsed_url);
?>

輸出

以上程式碼將產生類似於這樣的結果:

Array
(
    [scheme] => https
    [host] => www.tutorix.com
    [port] => 8080
    [path] => /path/to/page
    [query] => name=ferret&color=purple
    [fragment] => section2
)

示例 2

此示例演示如何使用 parse_url() 方法從 URL 中檢索協議(方案)。通常,方案是“http”或“https”。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.tw";
   $scheme = parse_url($url, PHP_URL_SCHEME);
   echo $scheme; 
?> 

輸出

執行上述程式後,將生成以下輸出:

https

示例 3

此示例的目的是使用 parse_url() 函式從 URL 中提取路徑。路徑指的是域名中的特定頁面或目錄。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.tw/html/index.htm";
   $path = parse_url($url, PHP_URL_PATH);
   echo $path; 
?> 

輸出

這將建立以下輸出:

/html/index.htm

示例 4

在這裡,我們演示如何使用 parse_url() 函式獲取 URL 的主機部分。主機就是域名,例如“www.tutorialspoint.com”。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.tw";
   $host = parse_url($url, PHP_URL_HOST);
   echo $host; // Output: www.example.com
?> 

輸出

執行上述程式後,將產生以下輸出:

www.tutorialspoint.com

示例 5

在此程式碼中,我們以 URL 作為輸入並提取其查詢字串。查詢字串包含傳送到網頁的引數“name=tomato&color=red”和其他引數。

<?php
   // Mention the URL here
   $url = "https://tutorialspoint.tw/page?name=tomato&color=red";
   $query = parse_url($url, PHP_URL_QUERY);
   echo $query; 
?> 

輸出

執行後將產生以下輸出:

name=tomato&color=red
php_function_reference.htm
廣告