【发布时间】:2013-09-27 13:38:07
【问题描述】:
我目前正在保护我的 AJAX 聊天免受攻击,方法是在将 PHP 中的所有文本传递给客户端之前对其进行检查。到目前为止,我已经成功完成了我的任务,除了需要匹配图像标签集的部分。
总的来说,我希望它能够拾取我管理的一组标签之间存在换行符的任何实例,但我拥有的解决方案是贪婪的,并且如果有多个标签之外的换行符也匹配标签集。
目前,如果我只想匹配 [img]{newline}[/img],则可以使用以下方法
if(preg_match('/\[\bimg\].*\x0A.*\[\/\bimg\]/', $text)){ //code }
但是如果我想做[img]image.jpg[/img]{newline}[img]image.jpg[/img],它只会看到我不想要的第一个和结束标签。
那么现在我问,如何让它正确匹配每组标签?
编辑:澄清。标签内的任何换行符都是不好的,所以我想检测它们。标签外的任何换行符都很好,我想忽略它们。原因是,如果客户端在标签内处理换行符,它就会崩溃。
【问题讨论】:
标签: php regex tags preg-match newline