user2122 Từ không xác định Thành viên kể từ thg 12 -0001 user2122 11 thg 5 2015 11:39 Hi, As title, How can I use remove_accents function to clear url like WordPress ? https://github.com/WordPress/WordPress/blob/master/wp-includes/formatting.php#L873 Thanks
litecart Main Crew Từ Sweden Thành viên kể từ thg 2 2013 litecart 11 thg 5 2015 18:09 See the method general_path_friendly() in ~/includes/functions/func_general.inc.php. It takes any text and tries to output it URL/file path friendly.
insanebear Developer Từ Poland Thành viên kể từ thg 10 2014 insanebear 13 thg 5 2015 11:53 My general_path_friendly() function look like this: function general_path_friendly($text) { // Remove HTML tags $text = strip_tags($text); // Decode special characters $text = html_entity_decode($text, ENT_QUOTES, language::$selected['charset']); // Treat special cases $special_cases = array('&' => 'and'); $text = str_replace(array_keys($special_cases), array_values($special_cases), $text); // Remove system characters [] $text = preg_replace(""/\[.*\]/U"", """", $text); // Convert foreign characters $text = htmlentities($text, ENT_QUOTES, language::$selected['charset']); $text = preg_replace('/&([a-z]{1,2})(?:acute|cedil|circ|grave|lig|orn|ring|slash|th|tilde|uml);/i', '$1', $text); $a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Œ', 'œ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Š', 'š', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', 'Ÿ', '?', '?', '?', '?', 'Ž', 'ž', '?', 'ƒ', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?'); $b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', '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'); $text = str_replace($a, $b, $text); // Keep a-z0-9 and convert symbols to - $text = preg_replace('/&(amp;)?#?[a-z0-9]+;/i', '-', $text); $text = preg_replace(array('/[^a-z0-9]/i', '/[-]+/'), '-', $text); $text = trim($text, '-'); // Convert to lowercases $text = strtolower($text); return $text; } Maybe this can help You :) The default general_path_friendly() function does not work for my language ;)
litecart Main Crew Từ Sweden Thành viên kể từ thg 2 2013 litecart 13 thg 5 2015 19:39 Thank you for sharing. Perhaps strtr() is more convenient for the case: $text = strtr($text, array( 'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C', 'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I', 'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ý' => 'Y', 'ß' => 's', 'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ý' => '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', ));
user2122 Từ không xác định Thành viên kể từ thg 12 -0001 user2122 14 thg 5 2015 09:23 @insanebear @devteam Thanks! Work perject! More non-english characters form URLify: https://github.com/jbroadway/urlify/blob/master/URLify.php
user387 Từ không xác định Thành viên kể từ thg 12 -0001 user387 20 thg 5 2015 02:28 is not flexible solution. I still need edit url manually