Μετατροπή Ελληνικών χαρακτήρων – URL sanitization in Greek
Τα Ελληνικά στα URL εμένα με εκνευρίζουν γιατί όταν πάμε να κάνουμε share βγαίνει ένα τεράστιο μακρυνάρι. Άλλοι για λόγους SEO θεωρούν ότι είναι καλύτερα, άλλοι όχι.
Όπως και να έχει εμείς τα κάνουμε όλα santitize με αυτό το καταπληκτικό plugin:
Επίσης υπάρχει και αυτό το function που το κάνει ακριβώς αυτό:
function sanitize_title($title) { if (seems_utf8($title)) { if (function_exists('mb_strtolower')) { $title = mb_strtolower($title, 'UTF-8'); } } $title = strtolower($title); $title = str_replace('.', '-', $title); $title = preg_replace('/\s+/', '-', $title); $title = preg_replace('|-+|', '-', $title); $title = trim($title, '-'); $title = htmlspecialchars(urldecode($title)); $expressions = array( '/[αάΑΆ]/u' => 'a', '/[βΒ]/u' => 'v', '/[γΓ]/u' => 'g', '/[δΔ]/u' => 'd', '/[εέΕΈ]/u' => 'e', '/[ζΖ]/u' => 'z', '/[ηήΗΉ]/u' => 'i', '/[θΘ]/u' => 'th', '/[ιίϊΙΊΪ]/u' => 'i', '/[κΚ]/u' => 'k', '/[λΛ]/u' => 'l', '/[μΜ]/u' => 'm', '/[νΝ]/u' => 'n', '/[ξΞ]/u' => 'x', '/[οόΟΌ]/u' => 'o', '/[πΠ]/u' => 'p', '/[ρΡ]/u' => 'r', '/[σςΣ]/u' => 's', '/[τΤ]/u' => 't', '/[υύϋΥΎΫ]/u' => 'y', '/[φΦ]/iu' => 'f', '/[χΧ]/u' => 'ch', '/[ψΨ]/u' => 'ps', '/[ωώ]/iu' => 'o', '/[αΑ][ιίΙΊ]/u' => 'e', '/[οΟΕε][ιίΙΊ]/u' => 'i', '/[αΑ][υύΥΎ]([θΘκΚξΞπΠσςΣτTφΡχΧψΨ]|\s|$)/u' => 'af$1', '/[αΑ][υύΥΎ]/u' => 'av', '/[εΕ][υύΥΎ]([θΘκΚξΞπΠσςΣτTφΡχΧψΨ]|\s|$)/u' => 'ef$1', '/[εΕ][υύΥΎ]/u' => 'ev', '/[οΟ][υύΥΎ]/u' => 'ou', '/(^|\s)[μΜ][πΠ]/u' => '$1b', '/[μΜ][πΠ](\s|$)/u' => 'b$1', '/[μΜ][πΠ]/u' => 'b', '/[νΝ][τΤ]/u' => 'nt', '/[τΤ][σΣ]/u' => 'ts', '/[τΤ][ζΖ]/u' => 'tz', '/[γΓ][γΓ]/u' => 'ng', '/[γΓ][κΚ]/u' => 'gk', '/[ηΗ][υΥ]([θΘκΚξΞπΠσςΣτTφΡχΧψΨ]|\s|$)/u' => 'if$1', '/[ηΗ][υΥ]/u' => 'iu', ); $title = preg_replace( array_keys($expressions), array_values($expressions), $title ); $title = preg_replace("/[^A-Za-z0-9'_\-\.]/", '-', $title); $title = preg_replace('/\-+/', '-', $title); $title = preg_replace('/^-+/', '', $title); $title = preg_replace('/-+$/', '', $title); return $title; }