Beispiel #1
0
 function _cleanupSefUrl($sef_url)
 {
     // Remove the white spaces
     $sef_url = preg_replace('/\\s\\s+/', ' ', $sef_url);
     // Remove some unwanted chars
     $replace = array("\"", "\\", "'", "`", "´", "‘", "’", "“", "”", "<", ">", "«", "»", "¿", "•", "®", "™", "„", "\\");
     foreach ($replace as $value) {
         if ($value != "") {
             $sef_url = str_replace($value, "", $sef_url);
         }
     }
     // Strip characters
     if ($this->AcesefConfig->url_strip_chars != "") {
         $len = strlen($this->AcesefConfig->url_strip_chars);
         for ($i = 0; $i < $len; $i++) {
             $char = substr($this->AcesefConfig->url_strip_chars, $i, 1);
             $sef_url = str_replace($char, "", $sef_url);
         }
     }
     // Replace chars for non-latin languages
     if ($this->AcesefConfig->char_replacements != "" && $this->AcesefConfig->utf8_url == 0) {
         $chars = $this->AcesefConfig->char_replacements;
         $chars_array = array();
         $elements = explode(',', $chars);
         foreach ($elements as $element) {
             @(list($source, $destination) = explode('|', trim($element)));
             // Empty source, continue
             if (trim($source) == '') {
                 continue;
             }
             $chars_array[trim($source)] = trim($destination);
         }
         $sef_url = strtr($sef_url, $chars_array);
     }
     // Remove quotes, spaces, and other illegal characters
     if ($this->AcesefConfig->utf8_url == 1) {
         $title = preg_replace(array('/\'/', '/[\\s"\\?\\:\\/\\\\]/', '/(^_|_$)/'), array('', $this->AcesefConfig->replacement_character, ''), $sef_url);
     } else {
         $title = preg_replace(array('/\'/', '/[^a-zA-Z0-9\\-!.,+]+/', '/(^_|_$)/'), array('', $this->AcesefConfig->replacement_character, ''), $sef_url);
     }
     // Space and some replacements
     $sef_url = str_replace(' ', $this->AcesefConfig->replacement_character, $sef_url);
     $sef_url = AcesefUtility::replaceLoop($this->AcesefConfig->replacement_character . '/', '/', $sef_url);
     $sef_url = AcesefUtility::replaceLoop('/' . $this->AcesefConfig->replacement_character, '/', $sef_url);
     $sef_url = AcesefUtility::replaceLoop('//', '/', $sef_url);
     $sef_url = AcesefUtility::replaceLoop('--', '-', $sef_url);
     $sef_url = rtrim($sef_url, '-');
     return $sef_url;
 }