PHP中識別並解析URL
阿新 • • 發佈:2021-06-29
一、從字串中識別URL
可以使用正則表示式匹配
function getUrl() { $str = '提取urlhttp://127.0.0.1/demo/index'; $pattern = "/http[s]?:\/\/(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+/"; preg_match($pattern, $str, $matches); return $matches ? $matches[0] : ''; // http://127.0.0.1/demo/index }
二、解析URL
可以使用PHP提供的parse_url()方法解析
function parseUrl() { $url = 'http://127.0.0.1/demo/index'; $parseUrl = parse_url($url); return $parseUrl; } // 得到結果 { "scheme": "http", "host": "127.0.0.1", "path": "/demo/index" }
parse_url()
本函式解析一個 URL 並返回一個關聯陣列,包含在 URL 中出現的各種組成部分。
本函式不是用來驗證給定 URL 的合法性的,只是將其分解為下面列出的部分。不完整的 URL 也被接受,parse_url() 會嘗試儘量正確地將其解析。
返回陣列中可能的鍵有以下幾種:
scheme - 如 http
host
port
user
pass
path
query - 在問號 ? 之後
fragment - 在雜湊符號 # 之後