From 703f6fde857d1dd3d03a1f34dd29aad1a2f4684e Mon Sep 17 00:00:00 2001 From: andi Date: Fri, 4 Feb 2005 22:23:49 +0100 Subject: fix for MAX_PATTERN_SIZE in wordblock (fixes #99) darcs-hash:20050204212349-9977f-124405c67094f4d9fcdc2cfe76d07bbe54c47be8.gz --- inc/common.php | 24 ++++++++++++++---------- 1 file 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; } -- cgit v1.2.3