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 - 在散列符号 # 之后

 

posted @ 2021-06-29 20:12  幽篁晓筑  阅读(235)  评论(0编辑  收藏  举报