溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php用正則表達(dá)式匹配URL的方法

發(fā)布時(shí)間:2021-07-24 14:01:30 來(lái)源:億速云 閱讀:302 作者:chen 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容介紹了“php用正則表達(dá)式匹配URL的方法”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在PHP的官網(wǎng)上看到的parse_url()函數(shù)的替代方案。結(jié)果和parse_url()函數(shù)差不多,是使用正則實(shí)現(xiàn)的。URI 是 Web上可用的每種資源 - HTML文檔、圖像、視頻片段、程序等 - 由一個(gè)通用資源標(biāo)志符(Uniform Resource Identifier, 簡(jiǎn)稱"URI")進(jìn)行定位。 對(duì)象分組:

復(fù)制代碼 代碼如下:


^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?
12            3  4       


測(cè)試代碼如下:

復(fù)制代碼 代碼如下:


<?php
$search = '~^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?~i';
$url = 'https://www.jb51.net/pub/ietf/uri/#Gonn';
$url = trim($url);
preg_match_all($search, $url ,$rr);
printf("<p>輸出URL數(shù)據(jù)為:</p><pre>%s</pre>\n",var_export( $rr ,TRUE));

/*
各分組如下
      $1 = http:
      $2 = http
      $3 = //www.nowamagic.net
      $4 = www.nowamagic.net
      $5 = /pub/ietf/uri/
      $6 = <undefined>
      $7 = <undefined>
      $8 = #Gonn
      $9 = Gonn
*/
?>

上面的正則表達(dá)式可以獲取URL中的任何一部分,下面的代碼則簡(jiǎn)單一些:

復(fù)制代碼 代碼如下:


<?php
// 從 URL 中取得主機(jī)名
preg_match("/^(http:\/\/)?([^\/]+)/i", "https://www.jb51.net/index.html", $matches);
$host = $matches[2];
// 從主機(jī)名中取得后面兩段
preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);
echo "domain name is: {$matches[0]}\n";
?>

“php用正則表達(dá)式匹配URL的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI