From 593c03cf998432868e11ff8379cae74d8497a97f Mon Sep 17 00:00:00 2001 From: henoheno Date: Wed, 3 Jan 2007 17:00:58 +0900 Subject: [PATCH] Added preg_grep_invert(), get_blocklist() --- spam.php | 34 ++++++++++++++++++++++++++++++---- spam/spam.php | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 60 insertions(+), 8 deletions(-) diff --git a/spam.php b/spam.php index be6566f..acb58fd 100644 --- a/spam.php +++ b/spam.php @@ -1,5 +1,5 @@ = 4.2.0): preg_grep() enabels invert option +function preg_grep_invert($pattern = '//', $input = array()) +{ + static $invert; + if (! isset($invert)) $invert = defined('PREG_GREP_INVERT'); + + if ($invert) { + return preg_grep($pattern, $input, PREG_GREP_INVERT); + } else { + return array_diff($input, preg_grep($pattern, $input)); + } +} + // --------------------- // URI pickup @@ -636,9 +649,7 @@ function generate_glob_regex($string = '', $divider = '/') } } -// TODO: preg_grep() ? -// TODO: Multi list -function is_badhost($hosts = '', $asap = TRUE) +function get_blocklist($listname = '') { static $regex; @@ -673,6 +684,21 @@ function is_badhost($hosts = '', $asap = TRUE) } } + if ($listname == '') { + return $regex; + } else if (isset($regex[$listname])) { + return $regex[$listname]; + } else { + return array(); + } +} + + +// TODO: preg_grep() ? +function is_badhost($hosts = '', $asap = TRUE) +{ + $regex = get_blocklist(); + $result = array(); if (! is_array($hosts)) $hosts = array($hosts); diff --git a/spam/spam.php b/spam/spam.php index be6566f..acb58fd 100644 --- a/spam/spam.php +++ b/spam/spam.php @@ -1,5 +1,5 @@ = 4.2.0): preg_grep() enabels invert option +function preg_grep_invert($pattern = '//', $input = array()) +{ + static $invert; + if (! isset($invert)) $invert = defined('PREG_GREP_INVERT'); + + if ($invert) { + return preg_grep($pattern, $input, PREG_GREP_INVERT); + } else { + return array_diff($input, preg_grep($pattern, $input)); + } +} + // --------------------- // URI pickup @@ -636,9 +649,7 @@ function generate_glob_regex($string = '', $divider = '/') } } -// TODO: preg_grep() ? -// TODO: Multi list -function is_badhost($hosts = '', $asap = TRUE) +function get_blocklist($listname = '') { static $regex; @@ -673,6 +684,21 @@ function is_badhost($hosts = '', $asap = TRUE) } } + if ($listname == '') { + return $regex; + } else if (isset($regex[$listname])) { + return $regex[$listname]; + } else { + return array(); + } +} + + +// TODO: preg_grep() ? +function is_badhost($hosts = '', $asap = TRUE) +{ + $regex = get_blocklist(); + $result = array(); if (! is_array($hosts)) $hosts = array($hosts); -- 2.11.0