正确使用preg_match?
我如何更改以下 preg_match() 代码以也阻止 index.html 文件,而不是仅阻止“.” 、“..”或“.htaccess”?
preg_match('/^\.(htaccess|\.)?/',$file)
How would I change the following preg_match() code to also block the index.html file, stead of only '.' , '..' , or '.htaccess'?
preg_match('/^\.(htaccess|\.)?/',$file)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这应该可以做到
但是,这里不需要正则表达式
更具可读性并且更容易扩展:)
This should do it
However, regular expressions are not necessary here
More readable and easier to extend :)
就像这样:
顺便说一句,括号只是为了清楚起见。
That would be something like:
By the way, the parenthesis are just for clarity.
实际上
preg_match('/^\.(htaccess|\.)?/',$file)
也会阻止以.
开头的任何其他文件(因为?)。所以KingCrunch的第二个解决方案是不一样的并且可能有风险!
因此,当您想要匹配以点开头的任何文件(因此还包括
.htaccess
和..
)和index.html
时,您可以使用:preg_match('/^(\.|index\.html)/',$file)
Actually
preg_match('/^\.(htaccess|\.)?/',$file)
blocks also any other file beginning with a.
(because of the?
). So KingCrunch's second solution is not the same and can be risky!So when you want to match any file starting with a dot (so also including
.htaccess
and..
) andindex.html
you could use:preg_match('/^(\.|index\.html)/',$file)