一、从字符串中识别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 - 在散列符号 # 之后