summaryrefslogtreecommitdiff
path: root/inc/common.php
diff options
context:
space:
mode:
authorandi <andi@splitbrain.org>2005-02-04 22:23:49 +0100
committerandi <andi@splitbrain.org>2005-02-04 22:23:49 +0100
commit703f6fde857d1dd3d03a1f34dd29aad1a2f4684e (patch)
treed3f21c2c0997e37b994becab54200ee73458f179 /inc/common.php
parent2d38ee565050f969c932beab97a3a45e3a0b1ec0 (diff)
downloadrpg-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.php24
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;
}