Last active
April 20, 2016 08:30
-
-
Save crewstyle/f91a187e0639b7c3f234309c71dac393 to your computer and use it in GitHub Desktop.
WordPress ~ Make medias works in all browsers (such as Safari) - #backend #optimisation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Sanitize filenames. | |
* | |
* This script has been made because of a bug on Safari which | |
* does not display medias if its name contains special character | |
* such as "é", "à" or a simple " ". | |
* This script transform all these specials to prevent this bug. | |
* | |
* @param string $filename Name of the file to sanitize | |
* @uses remove_accents() Converts all accent characters to ASCII characters | |
* @see https://github.com/crewstyle/clean-wordpress | |
*/ | |
add_filter('sanitize_file_name', '_cw_sanitize_filename', 10); | |
function _cw_sanitize_filename($filename) | |
{ | |
//Invalid characters | |
$invalid = array( | |
'À'=>'A', 'Ã'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä€'=>'A', 'Ä‚'=>'A', 'Ȧ'=>'A', 'Ä'=>'A', 'Ả'=>'A', 'Ã…'=>'A', 'Ç'=>'A', 'È€'=>'A', 'È‚'=>'A', 'Ä„'=>'A', 'Ạ'=>'A', 'Ḁ'=>'A', 'Ầ'=>'A', 'Ấ'=>'A', 'Ẫ'=>'A', 'Ẩ'=>'A', 'Ằ'=>'A', 'Ắ'=>'A', 'Ẵ'=>'A', 'Ẳ'=>'A', 'Ç '=>'A', 'Çž'=>'A', 'Ǻ'=>'A', 'Ậ'=>'A', 'Ặ'=>'A', | |
'Æ'=>'AE', 'Ǽ'=>'AE', 'Ǣ'=>'AE', | |
'Ḃ'=>'B', 'Æ'=>'B', 'Ḅ'=>'B', 'Ḇ'=>'B', 'Æ‚'=>'B', 'Æ„'=>'B', 'Þ'=>'B', | |
'Ĉ'=>'C', 'Ċ'=>'C', 'Č'=>'C', 'Ƈ'=>'C', 'Ç'=>'C', 'Ḉ'=>'C', | |
'Ḋ'=>'D', 'ÆŠ'=>'D', 'Ḍ'=>'D', 'Ḏ'=>'D', 'á¸'=>'D', 'Ḓ'=>'D', 'ÄŽ'=>'D', | |
'Ä'=>'Dj', 'Ɖ'=>'Dj', | |
'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ẽ'=>'E', 'Ä’'=>'E', 'Ä”'=>'E', 'Ä–'=>'E', 'Ë'=>'E', 'Ẻ'=>'E', 'Äš'=>'E', 'È„'=>'E', 'Ȇ'=>'E', 'Ẹ'=>'E', 'Ȩ'=>'E', 'Ę'=>'E', 'Ḙ'=>'E', 'Ḛ'=>'E', 'Ề'=>'E', 'Ế'=>'E', 'Ễ'=>'E', 'Ể'=>'E', 'Ḕ'=>'E', 'Ḗ'=>'E', 'Ệ'=>'E', 'Ḝ'=>'E', 'ÆŽ'=>'E', 'Æ'=>'E', | |
'Ḟ'=>'F', 'Ƒ'=>'F', | |
'Ç´'=>'G', 'Äœ'=>'G', 'Ḡ'=>'G', 'Äž'=>'G', 'Ä '=>'G', 'Ǧ'=>'G', 'Æ“'=>'G', 'Ä¢'=>'G', 'Ǥ'=>'G', | |
'Ĥ'=>'H', 'Ḧ'=>'H', 'Ȟ'=>'H', 'Ƕ'=>'H', 'Ḥ'=>'H', 'Ḩ'=>'H', 'Ḫ'=>'H', 'Ħ'=>'H', | |
'ÃŒ'=>'I', 'Ã'=>'I', 'ÃŽ'=>'I', 'Ĩ'=>'I', 'Ī'=>'I', 'Ĭ'=>'I', 'Ä°'=>'I', 'Ã'=>'I', 'Ỉ'=>'I', 'Ç'=>'I', 'Ị'=>'I', 'Ä®'=>'I', 'Ȉ'=>'I', 'ÈŠ'=>'I', 'Ḭ'=>'I', 'Æ—'=>'I', 'Ḯ'=>'I', | |
'IJ'=>'IJ', | |
'Ä´'=>'J', | |
'Ḱ'=>'K', 'Ǩ'=>'K', 'Ḵ'=>'K', 'Ƙ'=>'K', 'Ḳ'=>'K', 'Ķ'=>'K', 'Ĺ'=>'L', 'Ḻ'=>'L', 'Ḷ'=>'L', 'Ä»'=>'L', 'Ḽ'=>'L', 'Ľ'=>'L', 'Ä¿'=>'L', 'Å'=>'L', 'Ḹ'=>'L', | |
'Ḿ'=>'M', 'á¹€'=>'M', 'Ṃ'=>'M', 'Æœ'=>'M', 'Ñ'=>'N', 'Ǹ'=>'N', 'Ń'=>'N', 'Ñ'=>'N', 'Ṅ'=>'N', 'Ň'=>'N', 'ÅŠ'=>'N', 'Æ'=>'N', 'Ṇ'=>'N', 'Å…'=>'N', 'Ṋ'=>'N', 'Ṉ'=>'N', 'È '=>'N', | |
'Ã’'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'ÅŒ'=>'O', 'ÅŽ'=>'O', 'È®'=>'O', 'Ö'=>'O', 'Ỏ'=>'O', 'Å'=>'O', 'Ç‘'=>'O', 'ÈŒ'=>'O', 'ÈŽ'=>'O', 'Æ '=>'O', 'Ǫ'=>'O', 'Ọ'=>'O', 'ÆŸ'=>'O', 'Ø'=>'O', 'á»’'=>'O', 'á»'=>'O', 'á»–'=>'O', 'á»”'=>'O', 'È°'=>'O', 'Ȫ'=>'O', 'Ȭ'=>'O', 'Ṍ'=>'O', 'á¹'=>'O', 'á¹’'=>'O', 'Ờ'=>'O', 'Ớ'=>'O', 'á» '=>'O', 'Ở'=>'O', 'Ợ'=>'O', 'Ǭ'=>'O', 'Ộ'=>'O', 'Ǿ'=>'O', 'Ɔ'=>'O', 'Å’'=>'OE', | |
'Ṕ'=>'P', 'Ṗ'=>'P', 'Ƥ'=>'P', | |
'Å”'=>'R', 'Ṙ'=>'R', 'Ř'=>'R', 'È'=>'R', 'È’'=>'R', 'Ṛ'=>'R', 'Å–'=>'R', 'Ṟ'=>'R', 'Ṝ'=>'R', 'Ʀ'=>'R', | |
'Ś'=>'S', 'Ŝ'=>'S', 'Ṡ'=>'S', 'Š'=>'S', 'Ṣ'=>'S', 'Ș'=>'S', 'Ş'=>'S', 'Ṥ'=>'S', 'Ṧ'=>'S', 'Ṩ'=>'S', | |
'Ṫ'=>'T', 'Ť'=>'T', 'Ƭ'=>'T', 'Ʈ'=>'T', 'Ṭ'=>'T', 'Ț'=>'T', 'Ţ'=>'T', 'Ṱ'=>'T', 'Ṯ'=>'T', 'Ŧ'=>'T', | |
'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ũ'=>'U', 'Ū'=>'U', 'Ŭ'=>'U', 'Ü'=>'U', 'Ủ'=>'U', 'Ů'=>'U', 'Ű'=>'U', 'Ǔ'=>'U', 'Ȕ'=>'U', 'Ȗ'=>'U', 'Ư'=>'U', 'Ụ'=>'U', 'Ṳ'=>'U', 'Ų'=>'U', 'Ṷ'=>'U', 'Ṵ'=>'U', 'Ṹ'=>'U', 'Ṻ'=>'U', 'Ǜ'=>'U', 'Ǘ'=>'U', 'Ǖ'=>'U', 'Ǚ'=>'U', 'Ừ'=>'U', 'Ứ'=>'U', 'Ữ'=>'U', 'Ử'=>'U', 'Ự'=>'U', | |
'Ṽ'=>'V', 'Ṿ'=>'V', 'Ʋ'=>'V', | |
'Ẁ'=>'W', 'Ẃ'=>'W', 'Ŵ'=>'W', 'Ẇ'=>'W', 'Ẅ'=>'W', 'Ẉ'=>'W', | |
'Ẋ'=>'X', 'Ẍ'=>'X', | |
'Ỳ'=>'Y', 'Ã'=>'Y', 'Ŷ'=>'Y', 'Ỹ'=>'Y', 'Ȳ'=>'Y', 'Ẏ'=>'Y', 'Ÿ'=>'Y', 'Ỷ'=>'Y', 'Ƴ'=>'Y', 'á»´'=>'Y', | |
'Ź'=>'Z', 'áº'=>'Z', 'Å»'=>'Z', 'Ž'=>'Z', 'Ȥ'=>'Z', 'Ẓ'=>'Z', 'Ẕ'=>'Z', 'Ƶ'=>'Z', | |
'à '=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'Ä'=>'a', 'ă'=>'a', 'ȧ'=>'a', 'ä'=>'a', 'ả'=>'a', 'Ã¥'=>'a', 'ÇŽ'=>'a', 'È'=>'a', 'Ä…'=>'a', 'ạ'=>'a', 'á¸'=>'a', 'ẚ'=>'a', 'ầ'=>'a', 'ấ'=>'a', 'ẫ'=>'a', 'ẩ'=>'a', 'ằ'=>'a', 'ắ'=>'a', 'ẵ'=>'a', 'ẳ'=>'a', 'Ç¡'=>'a', 'ÇŸ'=>'a', 'Ç»'=>'a', 'áº'=>'a', 'ặ'=>'a', | |
'æ'=>'ae', 'ǽ'=>'ae', 'ǣ'=>'ae', | |
'ḃ'=>'b', 'ɓ'=>'b', 'ḅ'=>'b', 'ḇ'=>'b', 'ƀ'=>'b', 'ƃ'=>'b', 'ƅ'=>'b', 'þ'=>'b', | |
'ć'=>'c', 'ĉ'=>'c', 'Ä‹'=>'c', 'Ä'=>'c', 'ƈ'=>'c', 'ç'=>'c', 'ḉ'=>'c', | |
'ḋ'=>'d', 'É—'=>'d', 'á¸'=>'d', 'á¸'=>'d', 'ḑ'=>'d', 'ḓ'=>'d', 'Ä'=>'d', 'Ä‘'=>'d', 'ÆŒ'=>'d', 'È¡'=>'d', | |
'Ä‘'=>'dj', | |
'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ẽ'=>'e', 'Ä“'=>'e', 'Ä•'=>'e', 'Ä—'=>'e', 'ë'=>'e', 'ẻ'=>'e', 'Ä›'=>'e', 'È…'=>'e', 'ȇ'=>'e', 'ẹ'=>'e', 'È©'=>'e', 'Ä™'=>'e', 'ḙ'=>'e', 'ḛ'=>'e', 'á»'=>'e', 'ế'=>'e', 'á»…'=>'e', 'ể'=>'e', 'ḕ'=>'e', 'ḗ'=>'e', 'ệ'=>'e', 'á¸'=>'e', 'Ç'=>'e', 'É›'=>'e', | |
'ḟ'=>'f', 'ƒ'=>'f', | |
'ǵ'=>'g', 'Ä'=>'g', 'ḡ'=>'g', 'ÄŸ'=>'g', 'Ä¡'=>'g', 'ǧ'=>'g', 'É '=>'g', 'Ä£'=>'g', 'Ç¥'=>'g', | |
'ĥ'=>'h', 'ḣ'=>'h', 'ḧ'=>'h', 'ȟ'=>'h', 'ƕ'=>'h', 'ḥ'=>'h', 'ḩ'=>'h', 'ḫ'=>'h', 'ẖ'=>'h', 'ħ'=>'h', | |
'ì'=>'i', 'Ã'=>'i', 'î'=>'i', 'Ä©'=>'i', 'Ä«'=>'i', 'Ä'=>'i', 'ı'=>'i', 'ï'=>'i', 'ỉ'=>'i', 'Ç'=>'i', 'ị'=>'i', 'į'=>'i', 'ȉ'=>'i', 'È‹'=>'i', 'á¸'=>'i', 'ɨ'=>'i', 'ḯ'=>'i', | |
'ij'=>'ij', | |
'ĵ'=>'j', 'ǰ'=>'j', | |
'ḱ'=>'k', 'ǩ'=>'k', 'ḵ'=>'k', 'ƙ'=>'k', 'ḳ'=>'k', 'ķ'=>'k', | |
'ĺ'=>'l', 'ḻ'=>'l', 'ḷ'=>'l', 'ļ'=>'l', 'ḽ'=>'l', 'ľ'=>'l', 'ŀ'=>'l', 'ł'=>'l', 'ƚ'=>'l', 'ḹ'=>'l', 'ȴ'=>'l', | |
'ḿ'=>'m', 'á¹'=>'m', 'ṃ'=>'m', 'ɯ'=>'m', | |
'ǹ'=>'n', 'ń'=>'n', 'ñ'=>'n', 'ṅ'=>'n', 'ň'=>'n', 'ŋ'=>'n', 'ɲ'=>'n', 'ṇ'=>'n', 'ņ'=>'n', 'ṋ'=>'n', 'ṉ'=>'n', 'ʼn'=>'n', 'ƞ'=>'n', 'ȵ'=>'n', | |
'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'Å'=>'o', 'Å'=>'o', 'ȯ'=>'o', 'ö'=>'o', 'á»'=>'o', 'Å‘'=>'o', 'Ç’'=>'o', 'È'=>'o', 'È'=>'o', 'Æ¡'=>'o', 'Ç«'=>'o', 'á»'=>'o', 'ɵ'=>'o', 'ø'=>'o', 'ồ'=>'o', 'ố'=>'o', 'á»—'=>'o', 'ổ'=>'o', 'ȱ'=>'o', 'È«'=>'o', 'È'=>'o', 'á¹'=>'o', 'á¹'=>'o', 'ṑ'=>'o', 'ṓ'=>'o', 'á»'=>'o', 'á»›'=>'o', 'ỡ'=>'o', 'ở'=>'o', 'ợ'=>'o', 'Ç'=>'o', 'á»™'=>'o', 'Ç¿'=>'o', 'É”'=>'o', | |
'Å“'=>'oe', | |
'ṕ'=>'p', 'ṗ'=>'p', 'ƥ'=>'p', | |
'Å•'=>'r', 'á¹™'=>'r', 'Å™'=>'r', 'È‘'=>'r', 'È“'=>'r', 'á¹›'=>'r', 'Å—'=>'r', 'ṟ'=>'r', 'á¹'=>'r', | |
'Å›'=>'s', 'Å'=>'s', 'ṡ'=>'s', 'Å¡'=>'s', 'á¹£'=>'s', 'È™'=>'s', 'ÅŸ'=>'s', 'á¹¥'=>'s', 'ṧ'=>'s', 'ṩ'=>'s', 'Å¿'=>'s', 'ẛ'=>'s', | |
'ß'=>'Ss', | |
'ṫ'=>'t', 'ẗ'=>'t', 'Å¥'=>'t', 'Æ'=>'t', 'ʈ'=>'t', 'Æ«'=>'t', 'á¹'=>'t', 'È›'=>'t', 'Å£'=>'t', 'á¹±'=>'t', 'ṯ'=>'t', 'ŧ'=>'t', 'ȶ'=>'t', | |
'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'Å©'=>'u', 'Å«'=>'u', 'Å'=>'u', 'ü'=>'u', 'ủ'=>'u', 'ů'=>'u', 'ű'=>'u', 'Ç”'=>'u', 'È•'=>'u', 'È—'=>'u', 'Æ°'=>'u', 'ụ'=>'u', 'á¹³'=>'u', 'ų'=>'u', 'á¹·'=>'u', 'á¹µ'=>'u', 'á¹¹'=>'u', 'á¹»'=>'u', 'Çœ'=>'u', 'ǘ'=>'u', 'Ç–'=>'u', 'Çš'=>'u', 'ừ'=>'u', 'ứ'=>'u', 'ữ'=>'u', 'á»'=>'u', 'á»±'=>'u', | |
'ṽ'=>'v', 'ṿ'=>'v', | |
'áº'=>'w', 'ẃ'=>'w', 'ŵ'=>'w', 'ẇ'=>'w', 'ẅ'=>'w', 'ẘ'=>'w', 'ẉ'=>'w', | |
'ẋ'=>'x', 'áº'=>'x', | |
'ý'=>'y', 'ý'=>'y', 'ỳ'=>'y', 'ý'=>'y', 'Å·'=>'y', 'ȳ'=>'y', 'áº'=>'y', 'ÿ'=>'y', 'ÿ'=>'y', 'á»·'=>'y', 'ẙ'=>'y', 'Æ´'=>'y', 'ỵ'=>'y', | |
'ź'=>'z', 'ẑ'=>'z', 'ż'=>'z', 'ž'=>'z', 'ȥ'=>'z', 'ẓ'=>'z', 'ẕ'=>'z', 'ƶ'=>'z', | |
'â„–'=>'No', | |
'º'=>'o', | |
'ª'=>'a', | |
'€'=>'E', | |
'©'=>'C', | |
'â„—'=>'P', | |
'â„¢'=>'tm', | |
'â„ '=>'sm' | |
); | |
//Make the magic | |
$sanitized_filename = str_replace(array_keys($invalid), array_values($invalid), $filename); | |
$sanitized_filename = remove_accents($sanitized_filename); | |
$sanitized_filename = preg_replace('/[^a-zA-Z0-9-_\.]/', '', strtolower($sanitized_filename)); | |
//Return the new name | |
return $sanitized_filename; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment