2012-06-24 2 views
0

Im, создающий приложение Yii, где я сохраню изображения в базе данных. Теперь im ищет функцию php или yii, которые делают это имя файла изображения чистым, поэтому я могу использовать его позже в моих URL-адресах.Функция для обозначения файла изображения для использования в URL-адресе

Например, если я загрузить:

test image.jpg 
testímage.jpg 
tést ímage.jpg 

в моей базе данных я могу сохранить их как testimage.jpg или просто testimage.jpg

Какие другие методы вы используете? Вы используете настоящие имена или только штампы времени? Что вы думаете о методе, чтобы избежать дублирования?

Thanks

+0

md5 генерировать строку с символами и числами: эхо md5 («испытательной Image.jpg»); –

ответ

0

Лично я бы сохранил исходное имя файла. Если вам нужно что-то уникальное, вы можете добавить хэш или идентификатор строки в конце. Я знаю, что это возможно только для последних 10% процентов, но если имя файла представляет то, что показано на картинке, вы можете получить в SEO.

Для того, чтобы ваше имя файла «чистый», вы можете использовать такие функции, как это (PHP):

function trim($value, $onlySingleSpaces = false, $to1Line = false) { 

    $value = trim($value); 

    // change new lines and tabs to single spaces 
    if ($to1Line !== false) 
     $value = str_replace(array("\r\n", "\r", "\n", "\t"), ' ', $value); 

    // multispaces to single whitespaces 
    if ($onlySingleSpaces !== false) 
     $value = ereg_replace(" {2,}", ' ',$value); 

    return $value; 

} 

function removeAccent($value) { 

    $a = array('À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ü','ý','ÿ','Ā','ā','Ă','ă','Ą','ą','Ć','ć','Ĉ','ĉ','Ċ','ċ','Č','č','Ď','ď','Đ','đ','Ē','ē','Ĕ','ĕ','Ė','ė','Ę','ę','Ě','ě','Ĝ','ĝ','Ğ','ğ','Ġ','ġ','Ģ','ģ','Ĥ','ĥ','Ħ','ħ','Ĩ','ĩ','Ī','ī','Ĭ','ĭ','Į','į','İ','ı','IJ','ij','Ĵ','ĵ','Ķ','ķ','Ĺ','ĺ','Ļ','ļ','Ľ','ľ','Ŀ','ŀ','Ł','ł','Ń','ń','Ņ','ņ','Ň','ň','ʼn','Ō','ō','Ŏ','ŏ','Ő','ő','Œ','œ','Ŕ','ŕ','Ŗ','ŗ','Ř','ř','Ś','ś','Ŝ','ŝ','Ş','ş','Š','š','Ţ','ţ','Ť','ť','Ŧ','ŧ','Ũ','ũ','Ū','ū','Ŭ','ŭ','Ů','ů','Ű','ű','Ų','ų','Ŵ','ŵ','Ŷ','ŷ','Ÿ','Ź','ź','Ż','ż','Ž','ž','ſ','ƒ','Ơ','ơ','Ư','ư','Ǎ','ǎ','Ǐ','ǐ','Ǒ','ǒ','Ǔ','ǔ','Ǖ','ǖ','Ǘ','ǘ','Ǚ','ǚ','Ǜ','ǜ','Ǻ','ǻ','Ǽ','ǽ','Ǿ','ǿ'); 

    $b = array('A','A','A','A','AE','A','AE','C','E','E','E','E','I','I','I','I','D','N','O','O','O','O','OE','O','U','U','U','UE','Y','ss','a','a','a','a','ae','a','ae','c','e','e','e','e','i','i','i','i','n','o','o','o','o','oe','o','u','u','u','ue','y','y','A','a','A','a','A','a','C','c','C','c','C','c','C','c','D','d','D','d','E','e','E','e','E','e','E','e','E','e','G','g','G','g','G','g','G','g','H','h','H','h','I','i','I','i','I','i','I','i','I','i','IJ','ij','J','j','K','k','L','l','L','l','L','l','L','l','l','l','N','n','N','n','N','n','n','O','o','O','o','O','o','OE','oe','R','r','R','r','R','r','S','s','S','s','S','s','S','s','T','t','T','t','T','t','U','u','U','u','U','u','U','u','U','u','U','u','W','w','Y','y','Y','Z','z','Z','z','Z','z','s','f','O','o','U','u','A','a','I','i','O','o','U','u','U','u','U','u','U','u','U','u','A','a','AE','ae','O','o'); 

    return str_replace($a, $b, $value); 

} 

// trims, removes whitespaces, double "-", accents and stuff … :) 
function clean($value) { 

    return ereg_replace("-{2,}", '-', ereg_replace("_{1,}", '-', preg_replace(array('/[^a-zA-Z0-9 -_]/', '/[&]+/', '/[ ]+/', '/^-|-$/'), array('', '', '-', ''), removeAccent(trim($value, true, true))))); 

} 
+0

Спасибо. Я просто нашел также http://stackoverflow.com/questions/2668854/sanitizing-strings-to-make-them-url-and-filename-safe – chifliiiii

Смежные вопросы