note 96586 added to function.preg-replace
| From: | hello at weblap dot ro | Date: | Sat, 06 Mar 2010 12:10:40 +0000 |
| Subject: | note 96586 added to function.preg-replace | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-166730@lists.php.net to get a copy of this message | ||
Post slug generator, for creating clean urls from titles.
It works with many languages.
function remove_accent($str)
{
$a = array('Ã', 'Ã', 'Ã', 'Ã',
'Ã', 'Ã
', 'Ã', 'Ã', 'Ã',
'Ã', 'Ã', 'Ã', 'Ã', 'Ã',
'Ã', 'Ã', 'Ã', 'Ã', 'Ã',
'Ã', 'Ã', 'Ã', 'Ã', 'Ã',
'Ã', 'Ã', 'Ã', 'Ã', 'Ã',
'Ã', 'à ', 'á', 'â', 'ã',
'ä', 'å', 'æ', 'ç', 'è',
'é', 'ê', 'ë', 'ì', 'Ã',
'î', 'ï', 'ñ', 'ò', 'ó',
'ô', 'õ', 'ö', 'ø', 'ù',
'ú', 'û', 'ü', 'ý', 'ÿ',
'Ä', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä
', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä', 'Ä', 'Ä', 'Ä', 'Ä',
'Ä', 'Ä', 'Ä ', 'Ä¡', 'Ä¢',
'ģ', 'Ĥ', 'ĥ', 'Ħ', 'ħ',
'Ĩ', 'ĩ', 'Ī', 'ī', 'Ĭ',
'Ä', 'Ä®', 'į', 'İ', 'ı',
'IJ', 'ij', 'Ĵ', 'ĵ', 'Ķ',
'ķ', 'Ĺ', 'ĺ', 'Ļ', 'ļ',
'Ľ', 'ľ', 'Ä¿', 'Å', 'Å',
'Å', 'Å', 'Å', 'Å
', 'Å',
'Å', 'Å', 'Å', 'Å', 'Å',
'Å', 'Å', 'Å', 'Å', 'Å',
'Å', 'Å', 'Å', 'Å', 'Å',
'Å', 'Å', 'Å', 'Å', 'Å',
'Å', 'Å', 'Å', 'Å ', 'Å¡',
'Ţ', 'ţ', 'Ť', 'ť', 'Ŧ',
'ŧ', 'Ũ', 'ũ', 'Ū', 'ū',
'Ŭ', 'Å', 'Å®', 'ů', 'Ű',
'ű', 'Ų', 'ų', 'Ŵ', 'ŵ',
'Ŷ', 'ŷ', 'Ÿ', 'Ź', 'ź',
'Ż', 'ż', 'Ž', 'ž', 'ſ',
'Æ', 'Æ ', 'Æ¡', 'Ư', 'ư',
'Ç', 'Ç', 'Ç', 'Ç', 'Ç',
'Ç', 'Ç', 'Ç', 'Ç', 'Ç',
'Ç', 'Ç', 'Ç', 'Ç', 'Ç',
'Ç', 'Ǻ', 'Ç»', 'Ǽ', 'ǽ',
'Ǿ', 'ǿ');
$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');
return str_replace($a, $b, $str);
}
function post_slug($str)
{
return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/',
'/^-|-$/'),
array('', '-', ''), remove_accent($str)));
}
Example: post_slug(' -Lo#&@rem IPSUM //dolor-/sit - amet-/-consectetur! 12 -- ')
will output: lorem-ipsum-dolor-sit-amet-consectetur-12
----
Server IP: 69.147.83.197
Probable Submitter: 86.106.86.140
----
Manual Page -- http://www.php.net/manual/en/function.preg-replace.php
Edit -- https://master.php.net/note/edit/96586
Del: integrated -- https://master.php.net/note/delete/96586/integrated
Del: useless -- https://master.php.net/note/delete/96586/useless
Del: bad code -- https://master.php.net/note/delete/96586/bad+code
Del: spam -- https://master.php.net/note/delete/96586/spam
Del: non-english -- https://master.php.net/note/delete/96586/non-english
Del: in docs -- https://master.php.net/note/delete/96586/in+docs
Del: other reasons-- https://master.php.net/note/delete/96586
Reject -- https://master.php.net/note/reject/96586
Search -- https://master.php.net/manage/user-notes.php