内置URL数据验证功能

时间:2013-03-09 作者:egdavid

我有一个前端表单,人们可以在这里提交他们的网站URL。

我实际上是在用PHP函数验证Wordpress中的URL,我想知道是否有一个内置函数允许我这样做?

这是我实际使用的函数:

function validateURL($URL) {
    $v = "/^(http|https|ftp):\\/\\/([A-Z0-9][A-Z0-9_-]*(?:\\.[A-Z0-9][A-Z0-9_-]*)+):?(\\d+)?\\/?/i";
    return (bool)preg_match($v, $URL);
}

2 个回复
最合适的回答,由SO网友:fuxia 整理而成

使用esc_url( $url ) 对于应显示的URL,以及esc_url_raw( $url ) 是否应将URL发送到数据库。

第一个将取代裸安培数& 具有&.wp_allowed_protocols() 对于列表:\'http\', \'https\', \'ftp\', \'ftps\', \'mailto\', \'news\', \'irc\', \'gopher\', \'nntp\', \'feed\', \'telnet\', \'mms\', \'rtsp\', \'svn\', \'tel\', \'fax\', \'xmpp\'所以URL像javascript:alert("Hacked!"); 无法通过这些函数不完全是验证器。它们对值进行清理。但只要有URL要保存或显示,就应该使用它们。

还有wp_validate_redirect( $location, $default ).

$location 此处是URL,并且$default 如果第一个值未验证,则返回URL。从其文档块:

验证在重定向中使用的URL。

检查$位置是否使用允许的主机(如果它有绝对路径)。因此,插件可以在列表中设置或删除允许的主机。

注意:允许的主机不包括多站点安装的所有(子)域。不知道为什么。

SO网友:Milo

没有验证URL的函数,只有一个清理URL中使用的字符串的函数(sanitize_title).

有一个PHP filter 将验证URL的:FILTER_VALIDATE_URL.

结束

相关推荐

Adding Custom Forms

我正在寻找创建一个婚礼网站,将有一个表单页面。其想法是,这是一个RSVP页面,访客将输入他们收到的邀请上的唯一字符串,并将他们带到另一个页面,该页面将包含信息(出席人数、客人数量等),然后将其存储在数据库中,这样我就有了一个完整的客人列表,可以用于以后的用途。我还不太熟悉Wordpress,那么有什么最简单的方法可以让页面包含表单,并且第二个输入页面不会显示在导航中?我应该能够编写php和形成html没有太多的麻烦,只是需要一个起点。