Пример #1
1
 /**
  * Convert a String to URL, e.g., "Petty<br>theft" to "Petty-theft"
  *
  * @param String  $text
  * @param Int     $length      length of the output string
  * @param String  $language
  * @param Boolean $file_name   keep the "." from the extension e.g.: "imaäe.jpg" => "image.jpg"
  * @param Boolean $removeWords remove some "words" -> set via "remove_words()"
  * @param Boolean $strtolower  use strtolower() at the end
  * @param String  $seperator   define a new seperator for the words
  *
  * @return String
  */
 public static function filter($text, $length = 200, $language = 'de', $file_name = false, $removeWords = false, $strtolower = false, $seperator = '-')
 {
     // seperator-fallback
     if (!$seperator) {
         $seperator = '-';
     }
     $text = preg_replace(self::$arrayToSeperator, $seperator, $text);
     // 1) replace with $seperator
     $text = UTF8::strip_tags($text);
     // 2) remove all other html-tags
     $text = self::downcode($text, $language);
     // 3) use special language replacer
     $text = preg_replace(self::$arrayToSeperator, $seperator, $text);
     // 4) replace with $seperator, again
     // remove all these words from the string before urlifying
     if ($removeWords === true) {
         $removeWordsSearch = '/\\b(' . join('|', self::get_remove_list($language)) . ')\\b/i';
     } else {
         $removeWordsSearch = '//';
     }
     // keep the "." from e.g.: a file-extension?
     if ($file_name) {
         $remove_pattern = '/[^' . $seperator . '.\\-a-zA-Z0-9\\s]/u';
     } else {
         $remove_pattern = '/[^' . $seperator . '\\-a-zA-Z0-9\\s]/u';
     }
     $text = preg_replace(array('`[' . $seperator . ']+`', '[^A-Za-z0-9]', $remove_pattern, '/[' . $seperator . '\\s]+/', '/^\\s+|\\s+$/', $removeWordsSearch), array($seperator, '', '', $seperator, '', ''), $text);
     // convert to lowercase
     if ($strtolower === true) {
         $text = strtolower($text);
     }
     // trim "$seperator" from beginning and end of the string
     $text = trim($text, $seperator);
     // "substr" only if "$length" is set
     if ($length && $length > 0) {
         $text = (string) substr($text, 0, $length);
     }
     return $text;
 }