`
bsdgo
  • 浏览: 35667 次
社区版块
存档分类
最新评论

php 正则 长度限制

    博客分类:
  • php
阅读更多

场景:用正则表达式匹配页面内容时(preg_match(‘/(.*)(.*)<\/head>(.*)<\/html>/Uis’,$str)),发现有时能正常匹配,有时不能,可分析页面结构,发现没有变化,唯一变化的是页面大小。

原因:PHP对正则表达式匹配长度是用限制的,用phpinfo可以看到如下

pcre.backtrack_limit 100000 100000
pcre.recursion_limit 100000 100000

发现只有100K,如果是抓Web页面的话肯定不够的,其实只要在php.ini上做相应设置就行了(或者改变这两个值的大小)

pcre.backtrack_limit=-1
pcre.recursion_limit=-1

附说明:

[Pcre]
;Perl兼容正则表达式模块
pcre.backtrack_limit = 100000
; PCRE的最大回溯(backtracking)步数。
pcre.recursion_limit = 100000
; PCRE的最大递归(recursion)深度。
; 如果你将该值设的非常高,将可能耗尽进程的栈空间,导致PHP崩溃。

分享到:
评论

相关推荐

    php password密码验证正则表达式(8位长度限制)

    您可能感兴趣的文章:正则表达式 \w \d 的意义PowerShell中使用正则和ValidateSet验证参数合法性Shell正则表达式之grep、sed、awk实操笔记DW 查找某字符串前的所有字符的正则表达式解决正则表达式\w和\d的疑惑

    php常用正则表达式类.zip

    1. **用户名验证**:通常用户名需要符合一定的规则,比如不能包含特殊字符,长度限制在一定范围内。正则表达式可以确保用户名只包含字母、数字和下划线,并检查其长度是否在允许范围内。 2. **密码验证**:密码强度...

    PHP常用正则表达式汇总

    本文将对一系列常用的PHP正则表达式进行汇总和解释,帮助开发者更好地理解和运用这些模式。 #### 1. 数字匹配 - **"^\\d+$"**:匹配由一个或多个数字组成的字符串。 - **"^[0-9]*[1-9][0-9]*$"**:匹配非零的正...

    PHP一些常用的正则表达式

    ### PHP中常用的正则表达式知识点详解 #### 一、匹配中文字符的正则表达式 **表达式**: `[\u4e00-\u9fa5]` **解释**: 此表达式用于匹配所有中文字符。其中`\u4e00`表示中文的第一个Unicode编码,`\u9fa5`表示最后一...

    Java-PHP正则表达式的使用

    根据提供的标题、描述以及部分内容,我们可以总结出一系列与正则表达式相关的知识点,这些知识点主要应用于Java、PHP等编程语言中。以下是对这些知识点的详细解释: ### 匹配中文字符 **正则表达式**: `[u4e00-u9fa...

    PHP如何匹配不包含某些关键词正则写法

    需要注意的是,否定后瞻对前面的模式有长度限制,它必须是固定长度或者有限的非贪婪重复,因为PHP的PCRE引擎(Perl Compatible Regular Expressions)无法有效地处理无限长度的否定后瞻。 在实际应用中,我们需要...

    PHP正则表达式

    @后点前面长度限制为1-10个字符;点后面的限制为com、cn、com.cn、net。 ##### 2. 构建正则表达式 基于上述规则,我们可以构建以下正则表达式来验证邮件地址: - 用户名的正则表达式:`^[a-zA-Z][0-9a-zA-Z_]{4,...

    PHP中preg_match函数正则匹配的字符串长度问题

    然而,在使用`preg_match`进行复杂模式匹配时,有时会遇到无法正确提取或匹配到内容的情况,这可能是因为遇到了与字符串长度相关的限制问题。 首先,让我们了解一下`preg_match`函数的基本使用方法。`preg_match`...

    精通正则表达式~~~

    继续前进——限制匹配优先的作用范围... 225 实测... 226 全面考查回溯... 228 POSIX NFA需要更多处理... 229 无法匹配时必须进行的工作... 230 看清楚一点... 231 多选结构的代价可能很高... 231 性能测试....

    PHP正则匹配中英文、数字及下划线的方法【用户名验证】 原创

    本文主要探讨了如何使用PHP正则表达式来匹配包含中英文、数字以及下划线的字符串,这对于实现用户名验证功能非常有帮助。 在给出的示例中,使用了正则表达式`/[\w\x{4e00}-\x{9fa5}]+/u`来匹配用户名。这里`\w`匹配...

    控制textarea文本长度,并限制输入字数(带统计显示)

    1. **输入格式校验**:除了字数限制,还可以结合正则表达式检查输入格式,如禁止输入特殊字符或邮箱地址等。 2. **实时反馈**:可以使用CSS添加样式变化,如当达到字数限制的90%时,高亮提示用户。 3. **多语言支持*...

    php email邮箱正则

    文中还提到了有关电子邮箱域名的知识,如国际域名的构成、域名中字母不分大小写、域名长度限制等规则。这些规则是国际互联网域名系统的一部分,定义了有效域名的范围,同时也影响到邮箱地址的有效性。 综上所述,...

    php正则表达式

    30. `^[a-zA-Z][a-zA-Z0-9_]{4,15}$`:用户名匹配,长度限制在5到16个字符之间,首位必须是字母。 31. `(\d{3}-|\d{4}-)?(\d{8}|\d{7})?`:电话号码匹配,考虑了区号和位数的不同情况。 32. `^[1-9]*[1-9][0-9]*$`:...

    PHP中常用正则收集(个人感觉不错)

    ### PHP中的常用正则表达式知识点 #### 一、数字匹配 **1. 正则表达式:** `^\d+$` - **描述:** 匹配由一个或多个数字(0-9)组成的字符串。 - **应用场景:** 验证用户输入是否全为数字。 **2. 正则表达式:** `^...

    修改月光博客网站中PHP常用正则表达式中消失的错误__1.docx

    本文旨在分析并修正月光博客网站中使用的部分PHP正则表达式中存在的问题,并提供优化建议。 #### 1. 验证是否为中文字符 原表达式: ```php $reg='/[\x-\x]+/u'; ``` **问题**:该表达式中`[\x-\x]`部分明显错误,...

Global site tag (gtag.js) - Google Analytics