如何检查用户输入的文本是否为网址?
假设我想检查文本是否是网址,然后检查字符串中是否包含“youtube.com”。然后,我想获取子字符串“watch?v=”和任何“&”参数(如果确实存在)之间我感兴趣的链接部分。
最佳答案
parse_url()这里可能是一个不错的选择。如果您得到错误的 URL,该函数将返回 false
。否则,它会将 URL 分解为多个组成部分,您可以使用您需要的部分。
示例:
$urlParts = parse_url('http://www.youtube.com/watch?v=MX0D4oZwCsA');
if ($urlParts == false) echo "Bad URL";
else echo "Param string is ".$urlParts['query'];
输出:
Param string is v=MX0D4oZwCsA
您可以根据需要使用 explode() 拆分查询部分具体参数。
编辑:请记住,parse_url()
会尽可能努力地尝试解析给定的字符串,因此错误的 URL 通常会成功,尽管结果数据数组会很奇怪。显然,这取决于您希望验证的明确程度以及您到底需要从用户输入中获得什么。
关于PHP url 识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772667/