我想了解下面这一行代码:
str_replace('../', '', $route);
基本上它说'../'
$route
$route = 'information/information&information_id=4';
来自网址'index.php?route=information/information&information_id=4'
但$ route变量中没有../。它是某种正则表达式吗?如果是,它究竟做了什么。多谢你们。
答案 0 :(得分:4)
你认为它用空字符串替换"../"
是正确的。它不是正则表达式。在您的示例中没有出现它,但可能有。
它可能用于某种安全性,以防止您从文档根目录恢复目录结构。
答案 1 :(得分:2)
如果字符串中没有../
,则不会替换任何内容。这不是一个正则表达式(请参阅preg_replace()
。这只是针对某人试图传递无效路径(从../
开始)的预防措施,这可能是尝试访问网络服务器文档根目录之外的文件(在换句话说,黑客企图)。