1

我试图理解下面的这一行代码:

str_replace('../', '', $route);   

基本上它说'../'用什么都替换$route

$route = 'information/information&information_id=4';

从网址'index.php?route=information/information&information_id=4'

但是 $route 变量中没有 ../ 。它是某种正则表达式吗?如果是,它究竟是做什么的。多谢你们。

4

2 回答 2

4

您认为它替换"../"为空字符串是正确的。它不是正则表达式。在您的示例中没有出现它,但可能有.

它可能用于某种安全性,以防止您从文档根目录备份目录结构。

于 2011-01-19T19:15:52.747 回答
2

如果../字符串中没有,这将不会替换任何内容。这不是正则表达式(请参阅preg_replace()。它只是防止有人试图传递无效路径(以 开头../),这可能是试图访问网络服务器文档根目录之外的文件(换句话说,黑客攻击)。

于 2011-01-19T19:16:26.413 回答