Retourner au contenu associé (journal : Charsets multiples et systèmes de fichiers multiples)
Posté par André Rodier le 20 novembre 2006 à 16:44. En réponse au journal Charsets multiples et systèmes de fichiers multiples. Évalué à 1.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: saloperie de charset.
Posté par André Rodier . En réponse au journal Charsets multiples et systèmes de fichiers multiples. Évalué à 1.
$origCharset = 'ISO-8859-1' ;
// convert string to html
$fileName = strtolower(htmlentities($fileName, ENT_QUOTES, $origCharset)) ;
// remove '
$spcChars = explode( '|', ''|$') ;
$repChars = explode( '|', '-|-' ) ;
$fileName = str_replace($spcChars,$repChars, $fileName) ;
// convert some special chars. can be extended and perfected, more chars, localization, etc.
$spcChars = explode( '|', 'æ|œ|&|·|@|€|£|$|©|®') ;
$repChars = explode( '|', 'ae|oe|-and-|.|-at-|euro|pound|dollar|copyright|rights' ) ;
$fileName = str_replace($spcChars,$repChars, $fileName) ;
// remove accents
$fileName = preg_replace('/&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron);/','1ドル',$fileName) ;
// convert special chars
$fileName = preg_replace('/&([a-z]+);/','1ドル',$fileName) ;
// replace illegal chars with '-'
$fileName = preg_replace('/[^a-z0-9\.\-]/', '-', $fileName) ;
// replace multiple '-'
$fileName = preg_replace('/-+/','-',$fileName) ;
// replace end and begin '-'
$fileName = preg_replace('/(-$|^-)/','',$fileName) ;
En sortie, tu as par exemple :
- Fichier copié.jpg => fichier-copie.jpg
- Ventes & Prévisions.doc => ventes-and-previsions.doc
- Essai 2005 ®.xls => essai-2005-rights.xls
- Stædler.ppt => staedler.ppt
- ...
Bien sur, tu peux faire quelques adaptations, comme traduire & par et au lieu de and, etc...