哪个regexp php用于filter_var($ url,FILTER_VALIDATE_URL)?

时间:2010-07-22 08:48:29

标签: php regex

filter_var($url, FILTER_VALIDATE_URL)似乎是检测$url是否包含网址的好方法。有没有办法看到这个函数用于检测的正则表达式?

谢谢

3 个答案:

答案 0 :(得分:6)

它使用其他东西然后使用正则表达式。在C中,它会检查php_url_parse_ex()(C)函数的返回值,您可以在ext/standard/url.c, line 97调用ext/filter/logical_filters.c, line 440调用该函数。

在这些术语中:如果您在PHP中调用parse_url()(PHP)并执行与php_filter_validate_url()(C)中相同的检查,则您将获得相同的输出。

答案 1 :(得分:0)

该模式类似于URL解析。

$pattern = "/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i";

答案 2 :(得分:0)

Kris在PHP regex for validating a URL的答案使用了parse_url,在阅读了Wrikken关于filter_var($ url,FILTER_VALIDATE_URL)实际做了什么的答案之后,这似乎是最好的,因为它允许最大程度的控制。