1. 程式人生 > 其它 >PHP中識別並解析URL

PHP中識別並解析URL

一、從字串中識別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 - 在雜湊符號 # 之後