Advertisement
Grork

Transform string in a slug

Mar 28th, 2016
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.42 KB | None | 0 0
  1. function make_slug( $str, $trim = 40 ) {
  2.   $replace = array(
  3.     'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'Ae', 'Å'=>'A', 'Æ'=>'A', 'Ă'=>'A', 'Ą' => 'A', 'ą' => 'a',
  4.     'à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'ae', 'å'=>'a', 'ă'=>'a', 'æ'=>'ae',
  5.     'þ'=>'b', 'Þ'=>'B',
  6.     'Ç'=>'C', 'ç'=>'c', 'Ć' => 'C', 'ć' => 'c',
  7.     'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ę' => 'E', 'ę' => 'e',
  8.     'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e',
  9.     'Ğ'=>'G', 'ğ'=>'g',
  10.     'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'İ'=>'I', 'ı'=>'i', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i',
  11.     'Ł' => 'L', 'ł' => 'l',
  12.     'Ñ'=>'N', 'Ń' => 'N', 'ń' => 'n',
  13.     'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'Oe', 'Ø'=>'O', 'ö'=>'oe', 'ø'=>'o',
  14.     'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o',
  15.     'Š'=>'S', 'š'=>'s', 'Ş'=>'S', 'ș'=>'s', 'Ș'=>'S', 'ş'=>'s', 'ß'=>'ss', 'Ś' => 'S', 'ś' => 's',
  16.     'ț'=>'t', 'Ț'=>'T',
  17.     'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'Ue',
  18.     'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ü'=>'ue',
  19.     'Ý'=>'Y',
  20.     'ý'=>'y', 'ý'=>'y', 'ÿ'=>'y',
  21.     'Ž'=>'Z', 'ž'=>'z', 'Ż' => 'Z', 'ż' => 'z', 'Ź' => 'Z', 'ź' => 'z'
  22.   );
  23.  
  24.   $str = preg_replace( '~[^a-zA-Z0-9]+~', '-', strtolower( strtr( str_replace( ' ', '-', $str ), $replace ) ) );
  25.   return ( $trim > -1 && strlen( $str ) > $trim ? rtrim( substr( $str, 0, 40 ), '-' ) : $str );
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement