PHP正则表达式匹配所有网址

And*_*ira 8 php regex

我需要帮助创建一个匹配所有网址的正则表达式,例如,请不要将问题作为副本关闭,因为我一直在寻找我需要的东西很长时间,而且我所看到的答案都没有给出解决方案我的问题.

website.com

www.website.com

http://www.website.com

http://website.com

https://www.website.com

https://website.com

还有任何尾随

www.website.com/path-to-something

我正在编写缩短任何网址的内容,但要这样做,首先我需要将它们全部匹配.

谢谢

Lak*_*ula 18

这一个正确匹配您发布的所有内容:

preg_match_all('#[-a-zA-Z0-9@:%_\+.~\#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~\#?&//=]*)?#si', $targetString, $result);
Run Code Online (Sandbox Code Playgroud)


cry*_*c ツ 5

您想使用以下内容:

$string = 'www.blah.com';

$temp_string = (!preg_match('#^(ht|f)tps?://#', $string)) // check if protocol not present
    ? 'http://' . $string // temporarily add one
    : $string; // use current

if (filter_var($temp_string, FILTER_VALIDATE_URL))
{
    echo 'is valid';
} else {
    echo 'not valid';
}
Run Code Online (Sandbox Code Playgroud)

这使用PHP的内置URL验证。它将首先检查以查看是否存在协议,如果不存在,它将临时将一个协议添加到要检查的字符串中,然后通过验证运行它。与当前接受的答案不同,这是准确的。