首頁 後端開發 php教程 如何用PHP正規表示式驗證URL位址格式

如何用PHP正規表示式驗證URL位址格式

Jun 24, 2023 am 09:51 AM
php正規表示式 驗證url地址 url格式

隨著網路的快速發展,URL位址已經成為了人們日常生活中不可或缺的一部分。在web開發中,為了確保使用者輸入的URL位址可以正確地被系統識別和使用,我們需要對其進行格式驗證。本文將介紹如何使用PHP正規表示式來驗證URL位址格式。

一、URL位址的基本組成部分

在了解如何驗證URL位址格式之前,我們首先需要了解URL位址的基本組成部分。通常,一個標準的URL位址由以下幾個部分組成:

1.通訊協議部分(protocol): 指定客戶端與伺服器之間進行通訊的協議,常見的有http和https協議。

2.主機部分(host): 指定要連線的伺服器的主機名稱或IP位址。

3.連接埠號部分(port): 指定要連接的伺服器所使用的連接埠號,一般為透過主機名稱和協定確定的預設值。

4.路徑部分(path): 指定伺服器上某個特定頁面或檔案的路徑。

5.查詢字串部分(querystring): 用戶端傳遞給伺服器的額外參數。

6.片段識別碼部分(fragment identifier): 指定資源內部的某個位置。

二、PHP使用正規表示式驗證URL位址格式

在PHP中,使用preg_match函數來配合正規表示式可以輕鬆實現URL位址格式的驗證。

1.驗證通訊協定

使用正規表示式/^https?:///可驗證URL位址的通訊協定是否合法。其中^符合字串開頭,https?表示http或https協定二選一,//表示符合「//」字元。

範例程式碼:

$url = "http://www.example.com";
if(preg_match('/^https?:///', $url)){
    echo "通讯协议合法";
} else {
    echo "通讯协议不合法";
}
登入後複製

2.驗證主機名稱

使用正規表示式/^[A-Za-z0-9.-] .[A-Za- z]{2,}$/可驗證URL位址的主機名稱是否合法。其中[A-Za-z0-9.-]表示主機名稱中可以包含字母、數字、中劃線和點號, 表示匹配一次或多次,.[A-Za-z]{2,}$表示匹配一個點號後跟至少兩個字母的字串,並且該字串必須是URL位址的結尾。

範例程式碼:

$url = "http://www.example.com";
if(preg_match('/^[A-Za-z0-9.-]+.[A-Za-z]{2,}$/', parse_url($url, PHP_URL_HOST))){
    echo "主机名合法";
} else {
    echo "主机名不合法";
}
登入後複製

3.驗證連接埠號碼

使用正規表示式/:d $/可驗證URL位址的連接埠號碼是否合法。其中:表示匹配冒號字符,d 表示匹配一位或多位數字,並且該數字必須是URL地址的結尾。

範例程式碼:

$url = "http://www.example.com:8888";
if(preg_match('/:d+$/', parse_url($url, PHP_URL_PORT))){
    echo "端口号合法";
} else {
    echo "端口号不合法";
}
登入後複製

4.驗證路徑

使用正規表示式/^[/w.-] $/可驗證URL位址的路徑是否合法。其中^匹配字串開頭,[/w.-] 表示路徑中可以包含斜杠、字母、數字、中劃線和點號,並且至少匹配一個字符,$表示匹配字符串結尾。

範例程式碼:

$url = "http://www.example.com/path/to/page.html";
if(preg_match('/^[/w.-]+$/', parse_url($url, PHP_URL_PATH))){
    echo "路径合法";
} else {
    echo "路径不合法";
}
登入後複製

5.驗證查詢字串

使用正規表示式/^?. $/可驗證URL位址的查詢字串是否合法。其中^匹配字串開頭,?表示匹配問號字符,. 表示至少匹配一個字符,$表示匹配字符串結尾。

範例程式碼:

$url = "http://www.example.com/path/to/page.html?param=value";
if(preg_match('/^?.+$/', parse_url($url, PHP_URL_QUERY))){
    echo "查询字符串合法";
} else {
    echo "查询字符串不合法";
}
登入後複製

6.驗證URL位址完整格式

#透過以上五個正規表示式,我們可以逐一驗證URL位址的各部分是否合法。但更常見的做法是將它們合併起來,以驗證整個URL位址的完整格式是否合法。

例如,以下正規表示式可以驗證URL位址的完整格式是否合法:

/^https?://[A-Za-z0-9.-]+.[A-Za-z]{2,}(:d+)?(/[w.-]*)*(?.*)?$/i
登入後複製

其中i表示不區分大小寫。此正規表示式含有多個子表達式,分別用於驗證通訊協定、主機名稱、連接埠號碼、路徑和查詢字串是否合法。

範例程式碼:

$url = "http://www.example.com/path/to/page.html?param=value";
if(preg_match('/^https?://[A-Za-z0-9.-]+.[A-Za-z]{2,}(:d+)?(/[w.-]*)*(?.*)?$/i', $url)){
    echo "URL地址合法";
} else {
    echo "URL地址不合法";
}
登入後複製

總結:

本文介紹如何使用PHP正規表示式驗證URL位址格式。透過驗證通訊協定、主機名稱、連接埠號碼、路徑和查詢字串等部分是否合法,我們可以快速偵測URL位址的有效性,保證系統可以正確地使用使用者輸入的URL位址。

以上是如何用PHP正規表示式驗證URL位址格式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1268
29
C# 教程
1248
24
如何使用PHP正規表示式驗證輸入是否為IPv6位址 如何使用PHP正規表示式驗證輸入是否為IPv6位址 Jun 25, 2023 am 09:37 AM

IPv6是指InternetProtocolVersion6,是用於網際網路通訊的一種IP位址協定。 IPv6位址是由128個位元位元組成的數字,通常以8個16進位數分組表示。在PHP中,可以使用正規表示式來驗證輸入是否為IPv6位址,以下就介紹如何使用PHP正規表示式來驗證IPv6位址。第一步:了解IPv6位址的格式IPv6位址由8個16進位區塊組成,每個

PHP正規表示式驗證輸入字串是否為身分證號碼或護照號碼格式 PHP正規表示式驗證輸入字串是否為身分證號碼或護照號碼格式 Jun 24, 2023 pm 12:11 PM

身分證號碼和護照號碼是人們生活中常見的證件號碼。在實現涉及這些證件號碼的功能時,經常需要對輸入的號碼進行格式驗證,以確保其正確性。而在PHP中,使用正規表示式可以很好地實現此功能,本文就介紹如何使用PHP正規表示式驗證輸入字串是否為身分證號碼或護照號碼格式。一、身分證號碼驗證身分證號碼是由18位數字和最後一位可能是字母(校驗碼)組成的,其格式如下:前6

如何用PHP正規表示式驗證字串是否為空 如何用PHP正規表示式驗證字串是否為空 Jun 24, 2023 am 08:46 AM

在PHP中,我們可以使用正規表示式來驗證字串是否為空。字串為空的情況包括以下情況:字串只包含空格。字串長度為0。字串為null或未定義。接下來,我們將介紹如何使用PHP中的正規表示式來驗證這些情況。正規表示式:s+這個正規表示式可以用來匹配只包含空格的字串。其中s表示匹配空格,+表示匹配一個或多個。程式碼範例:functionisEmptySt

如何用PHP正規表示式驗證URL位址格式 如何用PHP正規表示式驗證URL位址格式 Jun 24, 2023 am 09:51 AM

隨著網路的快速發展,URL位址已經成為了人們日常生活中不可或缺的一部分。在web開發中,為了確保使用者輸入的URL位址可以正確地被系統識別和使用,我們需要對其進行格式驗證。本文將介紹如何使用PHP正規表示式來驗證URL位址格式。一、URL位址的基本組成部分在了解如何驗證URL位址格式之前,我們首先需要了解URL位址的基本組成部分。通常,一個標準的URL位址由

如何用PHP正規表示式驗證電話號碼格式 如何用PHP正規表示式驗證電話號碼格式 Jun 24, 2023 am 08:44 AM

在編寫Web應用程式時,經常需要進行電話號碼的驗證。 PHP常用的方法是使用正規表示式來判斷電話號碼的格式是否正確。正規表示式是一個強大的工具,它可以幫助您在簡潔的語句中確定某些模式。以下是在PHP中使用正規表示式來驗證電話號碼格式的範例。首先,讓我們定義電話號碼的通用格式。電話號碼可以包含數字、括號、連字號和空格。一個標準的電話號碼應該包含10個數字,前

如何在PHP中使用正規表示式驗證是否為檔案路徑 如何在PHP中使用正規表示式驗證是否為檔案路徑 Jun 24, 2023 am 10:18 AM

在PHP中,正規表示式是常用的字串比對和驗證工具。在開發過程中,需要經常對輸入的檔案路徑進行驗證,確保其格式正確。本文將介紹如何使用正規表示式驗證一個字串是否為檔案路徑。首先,我們需要確定一個檔案路徑的基本格式。在Windows系統中,典型的檔案路徑是類似「C:ProgramFilesPHPphp.exe」這樣的格式。路徑分為以下幾個部分:

如何使用PHP正規表示式驗證特定長度的輸入 如何使用PHP正規表示式驗證特定長度的輸入 Jun 24, 2023 am 10:17 AM

在開發Web應用程式時,經常需要驗證使用者輸入是否符合特定的格式和長度要求。 PHP正規表示式提供了一個強大的方法來驗證。本文將介紹如何使用PHP正規表示式驗證特定長度的輸入。確定輸入的長度要求在開始編寫正規表示式之前,需要確定輸入的長度要求。例如,如果要求使用者輸入長度為8的密碼,那麼正規表示式應該匹配8個字符,而不是匹配大於等於8個字符的字串。編寫正規則

如何在PHP中使用正規表示式驗證輸入是否為IPv4位址 如何在PHP中使用正規表示式驗證輸入是否為IPv4位址 Jun 24, 2023 am 09:20 AM

PHP作為一種流行的伺服器端程式語言,提供了一些強大的工具來驗證輸入資料的正確性。在本篇文章中,我們將重點放在如何使用正規表示式來驗證輸入是否為IPv4位址。首先,什麼是IPv4位址? IPv4位址是指一個32位元二進位數,通常被分成四個8位元二進位數,用"."分隔,表示為十進位形式。例如,127.0.0.1是一個IPv4位址。現在,我們來看看如何使用正規表示式來

See all articles