summaryrefslogtreecommitdiff
path: root/inc/pageutils.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/pageutils.php')
-rw-r--r--inc/pageutils.php10
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);