diff options
author | andi <andi@splitbrain.org> | 2005-02-04 22:23:49 +0100 |
---|---|---|
committer | andi <andi@splitbrain.org> | 2005-02-04 22:23:49 +0100 |
commit | 703f6fde857d1dd3d03a1f34dd29aad1a2f4684e (patch) | |
tree | d3f21c2c0997e37b994becab54200ee73458f179 /inc/common.php | |
parent | 2d38ee565050f969c932beab97a3a45e3a0b1ec0 (diff) | |
download | rpg-703f6fde857d1dd3d03a1f34dd29aad1a2f4684e.tar.gz rpg-703f6fde857d1dd3d03a1f34dd29aad1a2f4684e.tar.bz2 |
fix for MAX_PATTERN_SIZE in wordblock (fixes #99)
darcs-hash:20050204212349-9977f-124405c67094f4d9fcdc2cfe76d07bbe54c47be8.gz
Diffstat (limited to 'inc/common.php')
-rw-r--r-- | inc/common.php | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/inc/common.php b/inc/common.php index 6be27570a..a1325e2fc 100644 --- a/inc/common.php +++ b/inc/common.php @@ -329,16 +329,20 @@ function checkwordblock(){ if(!$conf['usewordblock']) return false; - $blocks = file('conf/wordblock.conf'); - $re = array(); - #build regexp from blocks - foreach($blocks as $block){ - $block = preg_replace('/#.*$/','',$block); - $block = trim($block); - if(empty($block)) continue; - $re[] = $block; - } - if(preg_match('#('.join('|',$re).')#si',$TEXT)) return true; + $blockfile = file('conf/wordblock.conf'); + //read file in chunks of 600 - this should work around the + //MAX_PATTERN_SIZE in PCRE + while($blocks = array_splice($blockfile,0,600)){ + $re = array(); + #build regexp from blocks + foreach($blocks as $block){ + $block = preg_replace('/#.*$/','',$block); + $block = trim($block); + if(empty($block)) continue; + $re[] = $block; + } + if(preg_match('#('.join('|',$re).')#si',$TEXT)) return true; + } return false; } |