1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
| <?php
// --------------------------------------------------------------
// FONCTION : FORMATAGE du nom des FICHIERS (photos/vidéos/...) pour enregistrement dans DOSSIER
// --------------------------------------------------------------
function formatage_nom_fichier( $chaine )
{
$sep = '-'; // séparateur
$let = 0; // nombre de lettres mini par mot
// remplacement : caractères accentués et espace
$chaine = str_replace('039', '-', $chaine); // apostrophe
$chaine = html_entity_decode( $chaine ); // Convertit les entités HTML spéciales en caractères
$chaine = urldecode( $chaine ); // Convertit les entités URL spéciales en caractères
$chaine = formatage_sans_accent( $chaine );
// -----------------
$chaine = utf8_decode( $chaine ); // Convertit une chaîne UTF-8 en ISO-8859-1
$chaine = strtolower(stripslashes(trim( $chaine )));
$chaine = strip_tags( $chaine ); // suppression de toutes les balises éventuelles
// -----------------
// remplacement de tout ce qui n'est pas : LETTRE non accentuées / CHIFFRE / POINT (.)
$chaine = preg_replace('/([^.a-zA-Z0-9]+)/i', $sep, $chaine);
$chaine = trim( $chaine );
// -----------------
// suppression des mots de moins de $let lettres :
if( $let > 0 )
{
$chaine_array = explode($sep, $chaine);
$chaine_retour = array();
foreach( $chaine_array as $mot ){
if( strlen($mot)>$let ){ $chaine_retour[] = $mot; }
}
// concaténation
$chaine = (empty($chaine_retour)) ? '' : implode($sep, $chaine_retour);
}
// -----------------
// SI la chaine est VIDE / caractères NON roman (ex. : Japonais, Russes...), on remplace par la DATE
if( $chaine=='' ){
$chaine = date('Y'.$sep.'m'.$sep.'d'.$sep.'H'.$sep.'s', time());
}
// -----------------
// suppression des articles
$NON_array = array($sep.'et'.$sep, $sep.'le'.$sep, $sep.'la'.$sep, $sep.'de'.$sep, $sep.'du'.$sep, $sep.'ou'.$sep, $sep.'.');
$OUI_array = array($sep, $sep, $sep, $sep, $sep, $sep, '.');
$chaine = str_replace($NON_array, $OUI_array, $chaine);
// -----------------
// FICHIER : raccourcir le nom si trop long (nom 60 caractères maxi + extension 5 caractères maxi)
$chaine_name = trim(pathinfo($chaine,PATHINFO_FILENAME), $sep);
$chaine_ext = trim(pathinfo($chaine,PATHINFO_EXTENSION), $sep);
$chaine = (strlen( $chaine )>60)? trim(substr($chaine_name, 0, 60), $sep).'.'.trim(substr($chaine_ext, 0, 5), $sep) : $chaine;
// -----------------
$chaine = trim($chaine, $sep);
$chaine = utf8_encode( $chaine ); // Convertit une chaîne ISO-8859-1 en UTF-8
return $chaine;
};
// --------------------------------------------------------------
// FONCTION : FORMATAGE sans accents
// --------------------------------------------------------------
function formatage_sans_accent( $chaine )
{
$chaine = html_entity_decode( $chaine ); // Convertit les entités HTML spéciales en caractères
$chaine = trim( $chaine );
// -----------------
// remplacement : caractères accentués et espace
$NON_array = array(
'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ă', 'Ą',
'Ç', 'Ć', 'Č', '',
'Ď', 'Đ',
'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ă', 'ą',
'ç', 'ć', 'č', '',
'ď', 'đ',
'È', 'É', 'Ê', 'Ë', 'Ę', 'Ě',
'Ğ',
'Ì', 'Í', 'Î', 'Ï', 'İ',
'Ĺ', 'Ľ', 'Ł',
'è', 'é', 'ê', 'ë', 'ę', 'ě',
'ğ',
'ì', 'í', 'î', 'ï', 'ı',
'ĺ', 'ľ', 'ł',
'Ñ', 'Ń', 'Ň',
'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ő',
'Ŕ', 'Ř',
'Ś', 'Ş', '',
'ñ', 'ń', 'ň',
'ò', 'ó', 'ô', 'ö', 'ø', 'ő',
'ŕ', 'ř',
'ś', 'ş', '',
'Ţ', 'Ť',
'Ù', 'Ú', 'Û', 'Ų', 'Ü', 'Ů', 'Ű',
'Ý', 'ß',
'Ź', 'Ż', '',
'ţ', 'ť',
'ù', 'ú', 'û', 'ų', 'ü', 'ů', 'ű',
'ý', 'ÿ',
'ź', 'ż', '',
'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р',
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'р',
'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я',
'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я'
);
$OUI_array = array(
'A', 'A', 'A', 'A', 'A', 'A', 'AE', 'A', 'A',
'C', 'C', 'C', 'CE',
'D', 'D',
'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'a', 'a',
'c', 'c', 'c', 'ce',
'd', 'd',
'E', 'E', 'E', 'E', 'E', 'E',
'G',
'I', 'I', 'I', 'I', 'I',
'L', 'L', 'L',
'e', 'e', 'e', 'e', 'e', 'e',
'g',
'i', 'i', 'i', 'i', 'i',
'l', 'l', 'l',
'N', 'N', 'N',
'O', 'O', 'O', 'O', 'O', 'O', 'O',
'R', 'R',
'S', 'S', 'S',
'n', 'n', 'n',
'o', 'o', 'o', 'o', 'o', 'o',
'r', 'r',
's', 's', 's',
'T', 'T',
'U', 'U', 'U', 'U', 'U', 'U', 'U',
'Y', 'Y',
'Z', 'Z', 'Z',
't', 't',
'u', 'u', 'u', 'u', 'u', 'u', 'u',
'y', 'y',
'z', 'z', 'z',
'A', 'B', 'B', 'r', 'A', 'E', 'E', 'X', '3', 'N', 'N', 'K', 'N', 'M', 'H', 'O', 'N', 'P',
'a', 'b', 'b', 'r', 'a', 'e', 'e', 'x', '3', 'n', 'n', 'k', 'n', 'm', 'h', 'o', 'p',
'C', 'T', 'Y', 'O', 'X', 'U', 'u', 'W', 'W', 'b', 'b', 'b', 'E', 'O', 'R',
'c', 't', 'y', 'o', 'x', 'u', 'u', 'w', 'w', 'b', 'b', 'b', 'e', 'o', 'r'
);
$chaine = str_replace($NON_array, $OUI_array, $chaine);
// -----------------
return $chaine;
}; |
Partager