Ejemplo n.º 1
0
 /**
  * Create slug from string
  *
  * @param string $string
  * @param string $replacement
  * @return string
  */
 function slug($string, $replacement = '-')
 {
     $string = strtolower_utf($string);
     $quoted_replacement = preg_quote($replacement, '/');
     $map = array('/à|á|å|â|а/' => 'a', '/б/' => 'b', '/в/' => 'v', '/г/' => 'g', '/д/' => 'd', '/ђ|đ/' => 'dj', '/џ/' => 'dz', '/è|é|ê|ẽ|ë/' => 'e', '/ж|ž|з/' => 'z', '/ì|í|î|и/' => 'i', '/ј/' => 'j', '/к/' => 'k', '/л/' => 'l', '/љ/' => 'lj', '/м/' => 'm', '/њ/' => 'nj', '/ò|ó|ô|ø|о/' => 'o', '/п/' => 'p', '/р/' => 'r', '/с|š|ш/' => 's', '/т/' => 't', '/ù|ú|ů|û|у/' => 'u', '/ç|č|ć|ц|ч|ћ/' => 'c', '/ñ|н/' => 'n', '/ф/' => 'f', '/х/' => 'h', '/ä|æ/' => 'ae', '/ö/' => 'oe', '/ü/' => 'ue', '/[^\\w\\s]/u' => ' ', '/\\s+/' => $replacement, "'/^[{$quoted_replacement}]+|[{$quoted_replacement}]+\$/'" => '');
     return trim(preg_replace(array_keys($map), array_values($map), $string), '-');
 }
Ejemplo n.º 2
0
function safe_name($text, $use_visual_mode = false)
{
    if (!$text) {
        return '';
    }
    $text = strtolower_utf($text);
    $translation_table = array('ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n', 'ō' => 'o', 'š' => 's', 'ū' => 'u', 'ž' => 'z', 'а' => 'a', 'б' => 'b', 'в' => $use_visual_mode ? 'b' : 'v', 'г' => 'g', 'д' => $use_visual_mode ? 'g' : 'd', 'е' => 'e', 'ё' => 'e', 'ж' => 'z', 'з' => $use_visual_mode ? '3' : 'z', 'и' => $use_visual_mode ? 'u' : 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => $use_visual_mode ? 'h' : 'n', 'о' => 'o', 'п' => 'p', 'р' => $use_visual_mode ? 'p' : 'r', 'с' => $use_visual_mode ? 'c' : 's', 'т' => 't', 'у' => $use_visual_mode ? 'y' : 'u', 'ф' => 'f', 'х' => $use_visual_mode ? 'x' : 'h', 'ц' => 'c', 'ч' => 'c', 'ш' => 's', 'щ' => 's', 'ъ' => '', 'ы' => 'i', 'ь' => '', 'э' => 'e', 'ю' => 'u', 'я' => 'j', 'ґ' => 'g', 'і' => 'i', 'ї' => 'i', 'є' => 'e');
    $text = strtr($text, $translation_table);
    $allowed_chars = 'abcdefghijklmnopqrstuvwxyz01234567890_';
    $out = '';
    for ($i = 0; $i < strlen_utf($text); $i++) {
        $char = substr_utf($text, $i, 1);
        if (strlen($char) != 1) {
            $out .= '_';
        } else {
            if (strpos($allowed_chars, $char) !== FALSE) {
                $out .= $char;
            } else {
                $out .= '_';
            }
        }
    }
    $out = trim($out, '_');
    $out = preg_replace('/__+/u', '_', $out);
    $out = preg_replace('/--+/u', '-', $out);
    if ($out == '') {
        $out = '_';
    }
    return $out;
}
Ejemplo n.º 3
0
 /**
  * Convert string to tags
  *
  * @param string $string
  * @return array
  */
 function toTags($string)
 {
     $string = trim($string);
     if ($string) {
         $tags = explode(',', $string);
         if (is_foreachable($tags)) {
             foreach ($tags as $k => $v) {
                 $tags[$k] = strtolower_utf(trim($v));
             }
             // foreach
             return $tags;
         }
         // if
     }
     // if
     return array();
 }