PHP网址识别

Ale*_*der 2 php regex url

如何检查用户输入的文本是否为网址?

假设我想检查文本是否是网址,然后检查字符串中是否包含"youtube.com".之后,我想在子串"watch?v ="和任何"&"参数(如果它们确实存在)之间得到链接的部分.

zom*_*bat 5

parse_url()可能是一个不错的选择.如果您收到错误的URL,该函数将返回false.否则,它会将URL分解为其组件,您可以使用所需的URL.

例:

$urlParts = parse_url('http://www.youtube.com/watch?v=MX0D4oZwCsA');
if ($urlParts == false) echo "Bad URL";
else echo "Param string is ".$urlParts['query'];
Run Code Online (Sandbox Code Playgroud)

输出:

Param string is v=MX0D4oZwCsA
Run Code Online (Sandbox Code Playgroud)

您可以根据需要使用explode()分割查询部分以获取特定参数.

编辑:请记住,parse_url()尝试尽可能地解析它给出的字符串,因此错误的URL通常会成功,尽管结果数据数组将非常奇怪.很明显,您希望验证是多么明确,以及您的用户输入究竟需要什么.

  • +1不指向存在特定功能的基于正则表达式的解决方案. (2认同)