diff options
Diffstat (limited to 'inc/pageutils.php')
-rw-r--r-- | inc/pageutils.php | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/inc/pageutils.php b/inc/pageutils.php index 20e0fbcb4..9b1d9621a 100644 --- a/inc/pageutils.php +++ b/inc/pageutils.php @@ -66,6 +66,12 @@ function getID($param='id'){ function cleanID($id){ global $conf; global $lang; + static $sepcharpat = null; + + $sepchar = $conf['sepchar']; + if($sepcharpat == null) // build string only once to save clock cycles + $sepcharpat = '#\\'.$sepchar.'+#'; + $id = trim($id); $id = utf8_strtolower($id); @@ -80,10 +86,10 @@ function cleanID($id){ if($conf['deaccent']) $id = utf8_deaccent($id,-1); //remove specials - $id = utf8_stripspecials($id,'_'); + $id = utf8_stripspecials($id,$sepchar); //clean up - $id = preg_replace('#_+#','_',$id); + $id = preg_replace($sepcharpat,$sepchar,$id); $id = preg_replace('#:+#',':',$id); $id = trim($id,':._-'); $id = preg_replace('#:[:\._\-]+#',':',$id); |