数组中的模式匹配

时间:2013-07-04 06:24:48

标签: php arrays pattern-matching

我正在托管一个运行PHPBB软件的论坛(用PHP编写)。

我在论坛中添加了第三方修改,允许用户在其个人资料中添加指向其Facebook页面的链接。有一行代码可以检查用户在此文本字段中输入的模式,如果用户输入的内容不符合所需的模式或格式,则会显示错误。

'facebook' => array(array('string', true, 12, 255),array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')),

我对这行代码的后半部分以及它正在测试的特定模式感到困惑。我找不到任何PHP参考页面来帮助我解释它正在测试的模式,并帮助我将其更改为我的首选模式。

我想修改上面的代码行,拒绝任何不以http://www.facebook.com/开头的条目

1 个答案:

答案 0 :(得分:1)

以下正则表达式检查字符串是以http://www.facebook.com/还是https://www.facebook.com/开头:

'#^https?:\/\/www\.facebook\.com\/#i'

因此,您的代码应该如下所示:

array('match', true, '#^https?:\/\/www\.facebook\.com\/#i'))