2011-03-20 101 views
0

我们每天都在学习。我遇到了这个脚本,虽然我是新来的正则表达式想知道它是一个安全的脚本使用和它实际上做了什么。这个正则表达式做什么?

从我认为它删除文本中的可点击链接,但会知道更多。

function new_regex($text = '') 
{ 
    $text = preg_replace('#(script|about|applet|activex|chrome):#is', "\\1:", $text); 
    $ret = ' ' . $text; 
    $ret = preg_replace("#(^|[\n ])([\w]+?://[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret); 

    $ret = preg_replace("#(^|[\n ])((www|ftp)\.[\w\#$%&~/.\-;:=,[email protected]\[\]+]*)#is", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret); 
    $ret = preg_replace("#(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)#i", "\\1<a href=\"mailto:\\[email protected]\\3\">\\[email protected]\\3</a>", $ret); 
    $ret = substr($ret, 1); 
    return $ret; 
} 
+1

这种类型的问题一定不能在这里问stackoverflow,而应该在codereview部分询问。 。 – kushalbhaktajoshi 2011-03-20 15:02:23

回答

1

第一行的确很少。它会查找活动脚本uri前缀,但会自行替换它们。这似乎是对安全问题的误导性尝试。

以下三个preg_replace调用替换为http:// URL或只是www.*域名和[email protected]地址。但它不会删除它们,它会用可点击的HTML链接取代它们。

+0

HTML链接到哪里或什么? – 2011-03-20 15:06:02

+0

您可以将此函数源文本与文字“... www.google.com ...”在某个地方进行传递。这个函数用['.. www.google.com ..'](http://www.google.com)替换它。这是一个1:1的替代品,它不会生成不同的网址/链接。 – mario 2011-03-20 15:07:43

+0

谢谢。弄清楚了。当然有你的帮助。 – 2011-03-20 15:10:51

相关问题