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