<?php
/**
* @link https://github.com/rogertiongdev/RTphp RTphp GitHub project
* @license https://rogertiongdev.github.io/MIT-License/
*/
namespace RTdev\RTphp;
/**
* Helper to remove funny characters.
*
* @version 0.1
* @author Roger Tiong RTdev
*/
class RTslugify {
/**
* Full char set
*
* @var array
*/
protected static $maps = array();
/**
* User selected char set from $maps array key(s)
*
* @var array
*/
private $charSet = array();
/**
* True: result will be lower case
*
* @var boolean
*/
private $lowercase = false;
/**
* Initialization
*/
public function __construct() {
self::$maps = unserialize(json_decode('"a:27:{s:6:\"arabic\";a:28:{s:2:\"أ\";s:1:\"a\";s:2:\"ب\";s:1:\"b\";s:2:\"ت\";s:1:\"t\";s:2:\"ث\";s:2:\"th\";s:2:\"ج\";s:1:\"g\";s:2:\"ح\";s:1:\"h\";s:2:\"خ\";s:2:\"kh\";s:2:\"د\";s:1:\"d\";s:2:\"ذ\";s:2:\"th\";s:2:\"ر\";s:1:\"r\";s:2:\"ز\";s:1:\"z\";s:2:\"س\";s:1:\"s\";s:2:\"ش\";s:2:\"sh\";s:2:\"ص\";s:1:\"s\";s:2:\"ض\";s:1:\"d\";s:2:\"ط\";s:1:\"t\";s:2:\"ظ\";s:2:\"th\";s:2:\"ع\";s:2:\"aa\";s:2:\"غ\";s:2:\"gh\";s:2:\"ف\";s:1:\"f\";s:2:\"ق\";s:1:\"k\";s:2:\"ك\";s:1:\"k\";s:2:\"ل\";s:1:\"l\";s:2:\"م\";s:1:\"m\";s:2:\"ن\";s:1:\"n\";s:2:\"ه\";s:1:\"h\";s:2:\"و\";s:1:\"o\";s:2:\"ي\";s:1:\"y\";}s:8:\"austrian\";a:7:{s:2:\"Ä\";s:2:\"AE\";s:2:\"Ö\";s:2:\"OE\";s:2:\"Ü\";s:2:\"UE\";s:2:\"ß\";s:2:\"sz\";s:2:\"ä\";s:2:\"ae\";s:2:\"ö\";s:2:\"oe\";s:2:\"ü\";s:2:\"ue\";}s:11:\"azerbaijani\";a:14:{s:2:\"ç\";s:1:\"c\";s:2:\"ə\";s:1:\"e\";s:2:\"ğ\";s:1:\"g\";s:2:\"ı\";s:1:\"i\";s:2:\"ö\";s:1:\"o\";s:2:\"ş\";s:1:\"s\";s:2:\"ü\";s:1:\"u\";s:2:\"Ç\";s:1:\"C\";s:2:\"Ə\";s:1:\"E\";s:2:\"Ğ\";s:1:\"G\";s:2:\"İ\";s:1:\"I\";s:2:\"Ö\";s:1:\"O\";s:2:\"Ş\";s:1:\"S\";s:2:\"Ü\";s:1:\"U\";}s:9:\"bulgarian\";a:63:{s:2:\"А\";s:1:\"A\";s:2:\"Б\";s:1:\"B\";s:2:\"В\";s:1:\"V\";s:2:\"Г\";s:1:\"G\";s:2:\"Д\";s:1:\"D\";s:2:\"Е\";s:1:\"E\";s:2:\"Ж\";s:1:\"J\";s:2:\"З\";s:1:\"Z\";s:2:\"И\";s:1:\"I\";s:2:\"Й\";s:1:\"Y\";s:2:\"К\";s:1:\"K\";s:2:\"Л\";s:1:\"L\";s:2:\"М\";s:1:\"M\";s:2:\"Н\";s:1:\"N\";s:2:\"О\";s:1:\"O\";s:2:\"П\";s:1:\"P\";s:2:\"Р\";s:1:\"R\";s:2:\"С\";s:1:\"S\";s:2:\"Т\";s:1:\"T\";s:2:\"У\";s:1:\"U\";s:2:\"Ф\";s:1:\"F\";s:2:\"Х\";s:1:\"H\";s:2:\"Ц\";s:2:\"Ts\";s:2:\"Ч\";s:2:\"Ch\";s:2:\"Ш\";s:2:\"Sh\";s:2:\"Щ\";s:3:\"Sht\";s:2:\"Ъ\";s:1:\"A\";s:2:\"Ь\";s:1:\"I\";s:2:\"Ю\";s:2:\"Iu\";s:2:\"Я\";s:2:\"Ia\";s:2:\"а\";s:1:\"a\";s:2:\"б\";s:1:\"b\";s:2:\"в\";s:1:\"v\";s:2:\"г\";s:1:\"g\";s:2:\"д\";s:1:\"d\";s:2:\"е\";s:1:\"e\";s:2:\"ж\";s:1:\"j\";s:2:\"з\";s:1:\"z\";s:2:\"и\";s:1:\"i\";s:2:\"й\";s:1:\"y\";s:2:\"к\";s:1:\"k\";s:2:\"л\";s:1:\"l\";s:2:\"м\";s:1:\"m\";s:2:\"н\";s:1:\"n\";s:2:\"о\";s:1:\"o\";s:2:\"п\";s:1:\"p\";s:2:\"р\";s:1:\"r\";s:2:\"с\";s:1:\"s\";s:2:\"т\";s:1:\"t\";s:2:\"у\";s:1:\"u\";s:2:\"ф\";s:1:\"f\";s:2:\"х\";s:1:\"h\";s:2:\"ц\";s:2:\"ts\";s:2:\"ч\";s:2:\"ch\";s:2:\"ш\";s:2:\"sh\";s:2:\"щ\";s:3:\"sht\";s:2:\"ъ\";s:1:\"a\";s:2:\"ь\";s:1:\"i\";s:2:\"ю\";s:2:\"iu\";s:2:\"я\";s:2:\"ia\";s:4:\"ия\";s:2:\"ia\";s:4:\"йо\";s:3:\"iо\";s:4:\"ьо\";s:2:\"io\";}s:7:\"burmese\";a:66:{s:3:\"က\";s:1:\"k\";s:3:\"ခ\";s:2:\"kh\";s:3:\"ဂ\";s:1:\"g\";s:3:\"ဃ\";s:2:\"ga\";s:3:\"င\";s:2:\"ng\";s:3:\"စ\";s:1:\"s\";s:3:\"ဆ\";s:2:\"sa\";s:3:\"ဇ\";s:1:\"z\";s:6:\"စျ\";s:2:\"za\";s:3:\"ည\";s:2:\"ny\";s:3:\"ဋ\";s:1:\"t\";s:3:\"ဌ\";s:2:\"ta\";s:3:\"ဍ\";s:1:\"d\";s:3:\"ဎ\";s:2:\"da\";s:3:\"ဏ\";s:2:\"na\";s:3:\"တ\";s:1:\"t\";s:3:\"ထ\";s:2:\"ta\";s:3:\"ဒ\";s:1:\"d\";s:3:\"ဓ\";s:2:\"da\";s:3:\"န\";s:1:\"n\";s:3:\"ပ\";s:1:\"p\";s:3:\"ဖ\";s:2:\"pa\";s:3:\"ဗ\";s:1:\"b\";s:3:\"ဘ\";s:2:\"ba\";s:3:\"မ\";s:1:\"m\";s:3:\"ယ\";s:1:\"y\";s:3:\"ရ\";s:2:\"ya\";s:3:\"လ\";s:1:\"l\";s:3:\"ဝ\";s:1:\"w\";s:3:\"သ\";s:2:\"th\";s:3:\"ဟ\";s:1:\"h\";s:3:\"ဠ\";s:2:\"la\";s:3:\"အ\";s:1:\"a\";s:3:\"ဧ\";s:1:\"e\";s:3:\"၏\";s:2:\"-e\";s:3:\"ဣ\";s:1:\"i\";s:3:\"ဤ\";s:2:\"-i\";s:3:\"ဉ\";s:1:\"u\";s:3:\"ဦ\";s:2:\"-u\";s:3:\"ဩ\";s:2:\"aw\";s:12:\"သြော\";s:2:\"aw\";s:3:\"ဪ\";s:2:\"aw\";s:3:\"၍\";s:4:\"ywae\";s:3:\"၌\";s:5:\"hnaik\";s:3:\"၀\";s:1:\"0\";s:3:\"၁\";s:1:\"1\";s:3:\"၂\";s:1:\"2\";s:3:\"၃\";s:1:\"3\";s:3:\"၄\";s:1:\"4\";s:3:\"၅\";s:1:\"5\";s:3:\"၆\";s:1:\"6\";s:3:\"၇\";s:1:\"7\";s:3:\"၈\";s:1:\"8\";s:3:\"၉\";s:1:\"9\";s:6:\"က်\";s:2:\"et\";s:6:\"င်\";s:2:\"in\";s:6:\"စ်\";s:2:\"it\";s:6:\"ည်\";s:1:\"i\";s:6:\"တ်\";s:2:\"at\";s:6:\"ဒ်\";s:1:\"d\";s:6:\"န်\";s:2:\"an\";s:6:\"ပ်\";s:2:\"at\";s:15:\"န်ုပ်\";s:3:\"nub\";s:6:\"မ်\";s:2:\"an\";s:6:\"ယ်\";s:1:\"e\";s:6:\"ဉ်\";s:2:\"in\";}s:8:\"croatian\";a:10:{s:2:\"Č\";s:1:\"C\";s:2:\"Ć\";s:1:\"C\";s:2:\"Ž\";s:1:\"Z\";s:2:\"Š\";s:1:\"S\";s:2:\"Đ\";s:2:\"Dj\";s:2:\"č\";s:1:\"c\";s:2:\"ć\";s:1:\"c\";s:2:\"ž\";s:1:\"z\";s:2:\"š\";s:1:\"s\";s:2:\"đ\";s:2:\"dj\";}s:5:\"czech\";a:18:{s:2:\"č\";s:1:\"c\";s:2:\"ď\";s:1:\"d\";s:2:\"ě\";s:1:\"e\";s:2:\"ň\";s:1:\"n\";s:2:\"ř\";s:1:\"r\";s:2:\"š\";s:1:\"s\";s:2:\"ť\";s:1:\"t\";s:2:\"ů\";s:1:\"u\";s:2:\"ž\";s:1:\"z\";s:2:\"Č\";s:1:\"C\";s:2:\"Ď\";s:1:\"D\";s:2:\"Ě\";s:1:\"E\";s:2:\"Ň\";s:1:\"N\";s:2:\"Ř\";s:1:\"R\";s:2:\"Š\";s:1:\"S\";s:2:\"Ť\";s:1:\"T\";s:2:\"Ů\";s:1:\"U\";s:2:\"Ž\";s:1:\"Z\";}s:6:\"danish\";a:8:{s:2:\"Æ\";s:2:\"Ae\";s:2:\"æ\";s:2:\"ae\";s:2:\"Ø\";s:2:\"Oe\";s:2:\"ø\";s:2:\"oe\";s:2:\"Å\";s:2:\"Aa\";s:2:\"å\";s:2:\"aa\";s:2:\"É\";s:1:\"E\";s:2:\"é\";s:1:\"e\";}s:7:\"default\";a:165:{s:2:\"°\";s:1:\"0\";s:2:\"¹\";s:1:\"1\";s:2:\"²\";s:1:\"2\";s:2:\"³\";s:1:\"3\";s:2:\"æ\";s:2:\"ae\";s:2:\"ǽ\";s:2:\"ae\";s:2:\"À\";s:1:\"A\";s:2:\"Á\";s:1:\"A\";s:2:\"Â\";s:1:\"A\";s:2:\"Ã\";s:1:\"A\";s:2:\"Å\";s:2:\"AA\";s:2:\"Ǻ\";s:1:\"A\";s:2:\"Ă\";s:1:\"A\";s:2:\"Ǎ\";s:1:\"A\";s:2:\"Æ\";s:2:\"AE\";s:2:\"Ǽ\";s:2:\"AE\";s:2:\"à\";s:1:\"a\";s:2:\"á\";s:1:\"a\";s:2:\"â\";s:1:\"a\";s:2:\"ã\";s:1:\"a\";s:2:\"å\";s:2:\"aa\";s:2:\"ǻ\";s:1:\"a\";s:2:\"ă\";s:1:\"a\";s:2:\"ǎ\";s:1:\"a\";s:2:\"ª\";s:1:\"a\";s:1:\"@\";s:2:\"at\";s:2:\"Ĉ\";s:1:\"C\";s:2:\"Ċ\";s:1:\"C\";s:2:\"Ç\";s:1:\"C\";s:2:\"ç\";s:1:\"c\";s:2:\"ĉ\";s:1:\"c\";s:2:\"ċ\";s:1:\"c\";s:2:\"©\";s:1:\"c\";s:2:\"Ð\";s:2:\"Dj\";s:2:\"Đ\";s:1:\"D\";s:2:\"ð\";s:2:\"dj\";s:2:\"đ\";s:1:\"d\";s:2:\"È\";s:1:\"E\";s:2:\"É\";s:1:\"E\";s:2:\"Ê\";s:1:\"E\";s:2:\"Ë\";s:1:\"E\";s:2:\"Ĕ\";s:1:\"E\";s:2:\"Ė\";s:1:\"E\";s:2:\"è\";s:1:\"e\";s:2:\"é\";s:1:\"e\";s:2:\"ê\";s:1:\"e\";s:2:\"ë\";s:1:\"e\";s:2:\"ĕ\";s:1:\"e\";s:2:\"ė\";s:1:\"e\";s:2:\"ƒ\";s:1:\"f\";s:2:\"Ĝ\";s:1:\"G\";s:2:\"Ġ\";s:1:\"G\";s:2:\"ĝ\";s:1:\"g\";s:2:\"ġ\";s:1:\"g\";s:2:\"Ĥ\";s:1:\"H\";s:2:\"Ħ\";s:1:\"H\";s:2:\"ĥ\";s:1:\"h\";s:2:\"ħ\";s:1:\"h\";s:2:\"Ì\";s:1:\"I\";s:2:\"Í\";s:1:\"I\";s:2:\"Î\";s:1:\"I\";s:2:\"Ï\";s:1:\"I\";s:2:\"Ĩ\";s:1:\"I\";s:2:\"Ĭ\";s:1:\"I\";s:2:\"Ǐ\";s:1:\"I\";s:2:\"Į\";s:1:\"I\";s:2:\"IJ\";s:2:\"IJ\";s:2:\"ì\";s:1:\"i\";s:2:\"í\";s:1:\"i\";s:2:\"î\";s:1:\"i\";s:2:\"ï\";s:1:\"i\";s:2:\"ĩ\";s:1:\"i\";s:2:\"ĭ\";s:1:\"i\";s:2:\"ǐ\";s:1:\"i\";s:2:\"į\";s:1:\"i\";s:2:\"ij\";s:2:\"ij\";s:2:\"Ĵ\";s:1:\"J\";s:2:\"ĵ\";s:1:\"j\";s:2:\"Ĺ\";s:1:\"L\";s:2:\"Ľ\";s:1:\"L\";s:2:\"Ŀ\";s:1:\"L\";s:2:\"ĺ\";s:1:\"l\";s:2:\"ľ\";s:1:\"l\";s:2:\"ŀ\";s:1:\"l\";s:2:\"Ñ\";s:1:\"N\";s:2:\"ñ\";s:1:\"n\";s:2:\"ʼn\";s:1:\"n\";s:2:\"Ò\";s:1:\"O\";s:2:\"Ó\";s:1:\"O\";s:2:\"Ô\";s:1:\"O\";s:2:\"Õ\";s:1:\"O\";s:2:\"Ō\";s:1:\"O\";s:2:\"Ŏ\";s:1:\"O\";s:2:\"Ǒ\";s:1:\"O\";s:2:\"Ő\";s:1:\"O\";s:2:\"Ơ\";s:1:\"O\";s:2:\"Ø\";s:2:\"OE\";s:2:\"Ǿ\";s:1:\"O\";s:2:\"Œ\";s:2:\"OE\";s:2:\"ò\";s:1:\"o\";s:2:\"ó\";s:1:\"o\";s:2:\"ô\";s:1:\"o\";s:2:\"õ\";s:1:\"o\";s:2:\"ō\";s:1:\"o\";s:2:\"ŏ\";s:1:\"o\";s:2:\"ǒ\";s:1:\"o\";s:2:\"ő\";s:1:\"o\";s:2:\"ơ\";s:1:\"o\";s:2:\"ø\";s:2:\"oe\";s:2:\"ǿ\";s:1:\"o\";s:2:\"º\";s:1:\"o\";s:2:\"œ\";s:2:\"oe\";s:2:\"Ŕ\";s:1:\"R\";s:2:\"Ŗ\";s:1:\"R\";s:2:\"ŕ\";s:1:\"r\";s:2:\"ŗ\";s:1:\"r\";s:2:\"Ŝ\";s:1:\"S\";s:2:\"Ș\";s:1:\"S\";s:2:\"ŝ\";s:1:\"s\";s:2:\"ș\";s:1:\"s\";s:2:\"ſ\";s:1:\"s\";s:2:\"Ţ\";s:1:\"T\";s:2:\"Ț\";s:1:\"T\";s:2:\"Ŧ\";s:1:\"T\";s:2:\"Þ\";s:2:\"TH\";s:2:\"ţ\";s:1:\"t\";s:2:\"ț\";s:1:\"t\";s:2:\"ŧ\";s:1:\"t\";s:2:\"þ\";s:2:\"th\";s:2:\"Ù\";s:1:\"U\";s:2:\"Ú\";s:1:\"U\";s:2:\"Û\";s:1:\"U\";s:2:\"Ü\";s:1:\"U\";s:2:\"Ũ\";s:1:\"U\";s:2:\"Ŭ\";s:1:\"U\";s:2:\"Ű\";s:1:\"U\";s:2:\"Ų\";s:1:\"U\";s:2:\"Ư\";s:1:\"U\";s:2:\"Ǔ\";s:1:\"U\";s:2:\"Ǖ\";s:1:\"U\";s:2:\"Ǘ\";s:1:\"U\";s:2:\"Ǚ\";s:1:\"U\";s:2:\"Ǜ\";s:1:\"U\";s:2:\"ù\";s:1:\"u\";s:2:\"ú\";s:1:\"u\";s:2:\"û\";s:1:\"u\";s:2:\"ü\";s:1:\"u\";s:2:\"ũ\";s:1:\"u\";s:2:\"ŭ\";s:1:\"u\";s:2:\"ű\";s:1:\"u\";s:2:\"ų\";s:1:\"u\";s:2:\"ư\";s:1:\"u\";s:2:\"ǔ\";s:1:\"u\";s:2:\"ǖ\";s:1:\"u\";s:2:\"ǘ\";s:1:\"u\";s:2:\"ǚ\";s:1:\"u\";s:2:\"ǜ\";s:1:\"u\";s:2:\"Ŵ\";s:1:\"W\";s:2:\"ŵ\";s:1:\"w\";s:2:\"Ý\";s:1:\"Y\";s:2:\"Ÿ\";s:1:\"Y\";s:2:\"Ŷ\";s:1:\"Y\";s:2:\"ý\";s:1:\"y\";s:2:\"ÿ\";s:1:\"y\";s:2:\"ŷ\";s:1:\"y\";}s:9:\"esperanto\";a:12:{s:2:\"ĉ\";s:2:\"cx\";s:2:\"ĝ\";s:2:\"gx\";s:2:\"ĥ\";s:2:\"hx\";s:2:\"ĵ\";s:2:\"jx\";s:2:\"ŝ\";s:2:\"sx\";s:2:\"ŭ\";s:2:\"ux\";s:2:\"Ĉ\";s:2:\"CX\";s:2:\"Ĝ\";s:2:\"GX\";s:2:\"Ĥ\";s:2:\"HX\";s:2:\"Ĵ\";s:2:\"JX\";s:2:\"Ŝ\";s:2:\"SX\";s:2:\"Ŭ\";s:2:\"UX\";}s:7:\"finnish\";a:2:{s:2:\"ä\";s:1:\"a\";s:2:\"ö\";s:1:\"o\";}s:5:\"farsi\";a:37:{s:2:\"آ\";s:2:\"aa\";s:2:\"ا\";s:1:\"a\";s:2:\"ب\";s:1:\"b\";s:2:\"پ\";s:1:\"p\";s:2:\"ت\";s:1:\"t\";s:2:\"ث\";s:2:\"th\";s:2:\"ج\";s:1:\"j\";s:2:\"چ\";s:2:\"ch\";s:2:\"ح\";s:1:\"h\";s:2:\"خ\";s:2:\"kh\";s:2:\"د\";s:1:\"d\";s:2:\"ذ\";s:1:\"z\";s:2:\"ر\";s:1:\"r\";s:2:\"ز\";s:1:\"z\";s:2:\"ژ\";s:2:\"zh\";s:2:\"س\";s:1:\"s\";s:2:\"ش\";s:2:\"sh\";s:2:\"ص\";s:1:\"s\";s:2:\"ض\";s:1:\"z\";s:2:\"ط\";s:1:\"t\";s:2:\"ظ\";s:2:\"th\";s:2:\"ع\";s:2:\"aa\";s:2:\"غ\";s:2:\"gh\";s:2:\"ف\";s:1:\"f\";s:2:\"ق\";s:2:\"gh\";s:2:\"ك\";s:1:\"k\";s:2:\"گ\";s:1:\"g\";s:2:\"ل\";s:1:\"l\";s:2:\"م\";s:1:\"m\";s:2:\"ن\";s:1:\"n\";s:2:\"ه\";s:1:\"h\";s:2:\"و\";s:1:\"o\";s:2:\"ي\";s:1:\"y\";s:2:\"ی\";s:1:\"y\";s:2:\"ِ\";s:1:\"e\";s:2:\"ُ\";s:1:\"o\";s:2:\"َ\";s:1:\"a\";}s:6:\"german\";a:8:{s:2:\"Ä\";s:2:\"Ae\";s:2:\"Ö\";s:2:\"Oe\";s:2:\"Ü\";s:2:\"Ue\";s:2:\"ä\";s:2:\"ae\";s:2:\"ö\";s:2:\"oe\";s:2:\"ü\";s:2:\"ue\";s:2:\"ß\";s:2:\"ss\";s:3:\"ẞ\";s:2:\"SS\";}s:5:\"greek\";a:69:{s:2:\"α\";s:1:\"a\";s:2:\"β\";s:1:\"b\";s:2:\"γ\";s:1:\"g\";s:2:\"δ\";s:1:\"d\";s:2:\"ε\";s:1:\"e\";s:2:\"ζ\";s:1:\"z\";s:2:\"η\";s:1:\"h\";s:2:\"θ\";s:1:\"8\";s:2:\"ι\";s:1:\"i\";s:2:\"κ\";s:1:\"k\";s:2:\"λ\";s:1:\"l\";s:2:\"μ\";s:1:\"m\";s:2:\"ν\";s:1:\"n\";s:2:\"ξ\";s:1:\"3\";s:2:\"ο\";s:1:\"o\";s:2:\"π\";s:1:\"p\";s:2:\"ρ\";s:1:\"r\";s:2:\"σ\";s:1:\"s\";s:2:\"τ\";s:1:\"t\";s:2:\"υ\";s:1:\"y\";s:2:\"φ\";s:1:\"f\";s:2:\"χ\";s:1:\"x\";s:2:\"ψ\";s:2:\"ps\";s:2:\"ω\";s:1:\"w\";s:2:\"ά\";s:1:\"a\";s:2:\"έ\";s:1:\"e\";s:2:\"ί\";s:1:\"i\";s:2:\"ό\";s:1:\"o\";s:2:\"ύ\";s:1:\"y\";s:2:\"ή\";s:1:\"h\";s:2:\"ώ\";s:1:\"w\";s:2:\"ς\";s:1:\"s\";s:2:\"ϊ\";s:1:\"i\";s:2:\"ΰ\";s:1:\"y\";s:2:\"ϋ\";s:1:\"y\";s:2:\"ΐ\";s:1:\"i\";s:2:\"Α\";s:1:\"A\";s:2:\"Β\";s:1:\"B\";s:2:\"Γ\";s:1:\"G\";s:2:\"Δ\";s:1:\"D\";s:2:\"Ε\";s:1:\"E\";s:2:\"Ζ\";s:1:\"Z\";s:2:\"Η\";s:1:\"H\";s:2:\"Θ\";s:1:\"8\";s:2:\"Ι\";s:1:\"I\";s:2:\"Κ\";s:1:\"K\";s:2:\"Λ\";s:1:\"L\";s:2:\"Μ\";s:1:\"M\";s:2:\"Ν\";s:1:\"N\";s:2:\"Ξ\";s:1:\"3\";s:2:\"Ο\";s:1:\"O\";s:2:\"Π\";s:1:\"P\";s:2:\"Ρ\";s:1:\"R\";s:2:\"Σ\";s:1:\"S\";s:2:\"Τ\";s:1:\"T\";s:2:\"Υ\";s:1:\"Y\";s:2:\"Φ\";s:1:\"F\";s:2:\"Χ\";s:1:\"X\";s:2:\"Ψ\";s:2:\"PS\";s:2:\"Ω\";s:1:\"W\";s:2:\"Ά\";s:1:\"A\";s:2:\"Έ\";s:1:\"E\";s:2:\"Ί\";s:1:\"I\";s:2:\"Ό\";s:1:\"O\";s:2:\"Ύ\";s:1:\"Y\";s:2:\"Ή\";s:1:\"H\";s:2:\"Ώ\";s:1:\"W\";s:2:\"Ϊ\";s:1:\"I\";s:2:\"Ϋ\";s:1:\"Y\";}s:8:\"georgian\";a:33:{s:3:\"ა\";s:1:\"a\";s:3:\"ბ\";s:1:\"b\";s:3:\"გ\";s:1:\"g\";s:3:\"დ\";s:1:\"d\";s:3:\"ე\";s:1:\"e\";s:3:\"ვ\";s:1:\"v\";s:3:\"ზ\";s:1:\"z\";s:3:\"თ\";s:1:\"t\";s:3:\"ი\";s:1:\"i\";s:3:\"კ\";s:1:\"k\";s:3:\"ლ\";s:1:\"l\";s:3:\"მ\";s:1:\"m\";s:3:\"ნ\";s:1:\"n\";s:3:\"ო\";s:1:\"o\";s:3:\"პ\";s:1:\"p\";s:3:\"ჟ\";s:2:\"zh\";s:3:\"რ\";s:1:\"r\";s:3:\"ს\";s:1:\"s\";s:3:\"ტ\";s:1:\"t\";s:3:\"უ\";s:1:\"u\";s:3:\"ფ\";s:1:\"f\";s:3:\"ქ\";s:1:\"k\";s:3:\"ღ\";s:2:\"gh\";s:3:\"ყ\";s:1:\"q\";s:3:\"შ\";s:2:\"sh\";s:3:\"ჩ\";s:2:\"ch\";s:3:\"ც\";s:2:\"ts\";s:3:\"ძ\";s:2:\"dz\";s:3:\"წ\";s:2:\"ts\";s:3:\"ჭ\";s:2:\"ch\";s:3:\"ხ\";s:2:\"kh\";s:3:\"ჯ\";s:1:\"j\";s:3:\"ჰ\";s:1:\"h\";}s:5:\"hindi\";a:28:{s:2:\"أ\";s:1:\"a\";s:2:\"ب\";s:1:\"b\";s:2:\"ت\";s:1:\"t\";s:2:\"ث\";s:2:\"th\";s:2:\"ج\";s:1:\"g\";s:2:\"ح\";s:1:\"h\";s:2:\"خ\";s:2:\"kh\";s:2:\"د\";s:1:\"d\";s:2:\"ذ\";s:2:\"th\";s:2:\"ر\";s:1:\"r\";s:2:\"ز\";s:1:\"z\";s:2:\"س\";s:1:\"s\";s:2:\"ش\";s:2:\"sh\";s:2:\"ص\";s:1:\"s\";s:2:\"ض\";s:1:\"d\";s:2:\"ط\";s:1:\"t\";s:2:\"ظ\";s:2:\"th\";s:2:\"ع\";s:2:\"aa\";s:2:\"غ\";s:2:\"gh\";s:2:\"ف\";s:1:\"f\";s:2:\"ق\";s:1:\"k\";s:2:\"ك\";s:1:\"k\";s:2:\"ل\";s:1:\"l\";s:2:\"م\";s:1:\"m\";s:2:\"ن\";s:1:\"n\";s:2:\"ه\";s:1:\"h\";s:2:\"و\";s:1:\"o\";s:2:\"ي\";s:1:\"y\";}s:5:\"latin\";a:72:{s:2:\"À\";s:1:\"A\";s:2:\"Á\";s:1:\"A\";s:2:\"Â\";s:1:\"A\";s:2:\"Ã\";s:1:\"A\";s:2:\"Ä\";s:1:\"A\";s:2:\"Å\";s:1:\"A\";s:2:\"Ă\";s:1:\"A\";s:2:\"Æ\";s:2:\"AE\";s:2:\"Ç\";s:1:\"C\";s:2:\"È\";s:1:\"E\";s:2:\"É\";s:1:\"E\";s:2:\"Ê\";s:1:\"E\";s:2:\"Ë\";s:1:\"E\";s:2:\"Ì\";s:1:\"I\";s:2:\"Í\";s:1:\"I\";s:2:\"Î\";s:1:\"I\";s:2:\"Ï\";s:1:\"I\";s:2:\"Ð\";s:1:\"D\";s:2:\"Ñ\";s:1:\"N\";s:2:\"Ò\";s:1:\"O\";s:2:\"Ó\";s:1:\"O\";s:2:\"Ô\";s:1:\"O\";s:2:\"Õ\";s:1:\"O\";s:2:\"Ö\";s:1:\"O\";s:2:\"Ő\";s:1:\"O\";s:2:\"Ø\";s:1:\"O\";s:2:\"Ș\";s:1:\"S\";s:2:\"Ț\";s:1:\"T\";s:2:\"Ù\";s:1:\"U\";s:2:\"Ú\";s:1:\"U\";s:2:\"Û\";s:1:\"U\";s:2:\"Ü\";s:1:\"U\";s:2:\"Ű\";s:1:\"U\";s:2:\"Ý\";s:1:\"Y\";s:2:\"Þ\";s:2:\"TH\";s:2:\"ß\";s:2:\"ss\";s:2:\"à\";s:1:\"a\";s:2:\"á\";s:1:\"a\";s:2:\"â\";s:1:\"a\";s:2:\"ã\";s:1:\"a\";s:2:\"ä\";s:1:\"a\";s:2:\"å\";s:1:\"a\";s:2:\"ă\";s:1:\"a\";s:2:\"æ\";s:2:\"ae\";s:2:\"ç\";s:1:\"c\";s:2:\"è\";s:1:\"e\";s:2:\"é\";s:1:\"e\";s:2:\"ê\";s:1:\"e\";s:2:\"ë\";s:1:\"e\";s:2:\"ì\";s:1:\"i\";s:2:\"í\";s:1:\"i\";s:2:\"î\";s:1:\"i\";s:2:\"ï\";s:1:\"i\";s:2:\"ð\";s:1:\"d\";s:2:\"ñ\";s:1:\"n\";s:2:\"ò\";s:1:\"o\";s:2:\"ó\";s:1:\"o\";s:2:\"ô\";s:1:\"o\";s:2:\"õ\";s:1:\"o\";s:2:\"ö\";s:1:\"o\";s:2:\"ő\";s:1:\"o\";s:2:\"ø\";s:1:\"o\";s:2:\"ș\";s:1:\"s\";s:2:\"ț\";s:1:\"t\";s:2:\"ù\";s:1:\"u\";s:2:\"ú\";s:1:\"u\";s:2:\"û\";s:1:\"u\";s:2:\"ü\";s:1:\"u\";s:2:\"ű\";s:1:\"u\";s:2:\"ý\";s:1:\"y\";s:2:\"þ\";s:2:\"th\";s:2:\"ÿ\";s:1:\"y\";}s:13:\"latin_symbols\";a:2:{s:2:\"©\";s:3:\"(c)\";s:2:\"®\";s:3:\"(r)\";}s:7:\"latvian\";a:22:{s:2:\"ā\";s:1:\"a\";s:2:\"č\";s:1:\"c\";s:2:\"ē\";s:1:\"e\";s:2:\"ģ\";s:1:\"g\";s:2:\"ī\";s:1:\"i\";s:2:\"ķ\";s:1:\"k\";s:2:\"ļ\";s:1:\"l\";s:2:\"ņ\";s:1:\"n\";s:2:\"š\";s:1:\"s\";s:2:\"ū\";s:1:\"u\";s:2:\"ž\";s:1:\"z\";s:2:\"Ā\";s:1:\"A\";s:2:\"Č\";s:1:\"C\";s:2:\"Ē\";s:1:\"E\";s:2:\"Ģ\";s:1:\"G\";s:2:\"Ī\";s:1:\"i\";s:2:\"Ķ\";s:1:\"k\";s:2:\"Ļ\";s:1:\"L\";s:2:\"Ņ\";s:1:\"N\";s:2:\"Š\";s:1:\"S\";s:2:\"Ū\";s:1:\"u\";s:2:\"Ž\";s:1:\"Z\";}s:10:\"lithuanian\";a:18:{s:2:\"ą\";s:1:\"a\";s:2:\"č\";s:1:\"c\";s:2:\"ę\";s:1:\"e\";s:2:\"ė\";s:1:\"e\";s:2:\"į\";s:1:\"i\";s:2:\"š\";s:1:\"s\";s:2:\"ų\";s:1:\"u\";s:2:\"ū\";s:1:\"u\";s:2:\"ž\";s:1:\"z\";s:2:\"Ą\";s:1:\"A\";s:2:\"Č\";s:1:\"C\";s:2:\"Ę\";s:1:\"E\";s:2:\"Ė\";s:1:\"E\";s:2:\"Į\";s:1:\"I\";s:2:\"Š\";s:1:\"S\";s:2:\"Ų\";s:1:\"U\";s:2:\"Ū\";s:1:\"U\";s:2:\"Ž\";s:1:\"Z\";}s:6:\"polish\";a:18:{s:2:\"ą\";s:1:\"a\";s:2:\"ć\";s:1:\"c\";s:2:\"ę\";s:1:\"e\";s:2:\"ł\";s:1:\"l\";s:2:\"ń\";s:1:\"n\";s:2:\"ó\";s:1:\"o\";s:2:\"ś\";s:1:\"s\";s:2:\"ź\";s:1:\"z\";s:2:\"ż\";s:1:\"z\";s:2:\"Ą\";s:1:\"A\";s:2:\"Ć\";s:1:\"C\";s:2:\"Ę\";s:1:\"e\";s:2:\"Ł\";s:1:\"L\";s:2:\"Ń\";s:1:\"N\";s:2:\"Ó\";s:1:\"O\";s:2:\"Ś\";s:1:\"S\";s:2:\"Ź\";s:1:\"Z\";s:2:\"Ż\";s:1:\"Z\";}s:8:\"romanian\";a:7:{s:2:\"ă\";s:1:\"a\";s:2:\"â\";s:1:\"a\";s:2:\"î\";s:1:\"i\";s:2:\"ș\";s:1:\"s\";s:2:\"ț\";s:1:\"t\";s:2:\"Ţ\";s:1:\"T\";s:2:\"ţ\";s:1:\"t\";}s:7:\"russian\";a:28:{s:2:\"а\";s:1:\"a\";s:2:\"б\";s:1:\"b\";s:2:\"в\";s:1:\"v\";s:2:\"г\";s:1:\"g\";s:2:\"д\";s:1:\"d\";s:2:\"е\";s:1:\"e\";s:2:\"ё\";s:2:\"yo\";s:2:\"ж\";s:2:\"zh\";s:2:\"з\";s:1:\"z\";s:2:\"и\";s:1:\"i\";s:2:\"й\";s:1:\"j\";s:2:\"к\";s:1:\"k\";s:2:\"л\";s:1:\"l\";s:2:\"м\";s:1:\"m\";s:2:\"н\";s:1:\"n\";s:2:\"о\";s:1:\"o\";s:2:\"п\";s:1:\"p\";s:2:\"р\";s:1:\"r\";s:2:\"с\";s:1:\"s\";s:2:\"т\";s:1:\"t\";s:2:\"у\";s:1:\"u\";s:2:\"ф\";s:1:\"f\";s:2:\"х\";s:1:\"h\";s:2:\"ц\";s:1:\"c\";s:2:\"ч\";s:2:\"ch\";s:2:\"ш\";s:2:\"sh\";s:2:\"щ\";s:2:\"sh\";s:2:\"ъ\";s:0:\"\";}s:8:\"serbianr\";a:14:{s:2:\"ђ\";s:2:\"dj\";s:2:\"ј\";s:1:\"j\";s:2:\"љ\";s:2:\"lj\";s:2:\"њ\";s:2:\"nj\";s:2:\"ћ\";s:1:\"c\";s:2:\"џ\";s:2:\"dz\";s:2:\"đ\";s:2:\"dj\";s:2:\"Ђ\";s:2:\"Dj\";s:2:\"Ј\";s:1:\"j\";s:2:\"Љ\";s:2:\"Lj\";s:2:\"Њ\";s:2:\"Nj\";s:2:\"Ћ\";s:1:\"C\";s:2:\"Џ\";s:2:\"Dz\";s:2:\"Đ\";s:2:\"Dj\";}s:7:\"turkish\";a:12:{s:2:\"ş\";s:1:\"s\";s:2:\"Ş\";s:1:\"S\";s:2:\"ı\";s:1:\"i\";s:2:\"İ\";s:1:\"I\";s:2:\"ç\";s:1:\"c\";s:2:\"Ç\";s:1:\"C\";s:2:\"ü\";s:1:\"u\";s:2:\"Ü\";s:1:\"U\";s:2:\"ö\";s:1:\"o\";s:2:\"Ö\";s:1:\"O\";s:2:\"ğ\";s:1:\"g\";s:2:\"Ğ\";s:1:\"G\";}s:9:\"ukrainian\";a:8:{s:2:\"Є\";s:2:\"Ye\";s:2:\"І\";s:1:\"I\";s:2:\"Ї\";s:2:\"Yi\";s:2:\"Ґ\";s:1:\"G\";s:2:\"є\";s:2:\"ye\";s:2:\"і\";s:1:\"i\";s:2:\"ї\";s:2:\"yi\";s:2:\"ґ\";s:1:\"g\";}s:10:\"vietnamese\";a:134:{s:2:\"Á\";s:1:\"A\";s:2:\"À\";s:1:\"A\";s:3:\"Ả\";s:1:\"A\";s:2:\"Ã\";s:1:\"A\";s:3:\"Ạ\";s:1:\"A\";s:2:\"Ă\";s:1:\"A\";s:3:\"Ắ\";s:1:\"A\";s:3:\"Ằ\";s:1:\"A\";s:3:\"Ẳ\";s:1:\"A\";s:3:\"Ẵ\";s:1:\"A\";s:3:\"Ặ\";s:1:\"A\";s:2:\"Â\";s:1:\"A\";s:3:\"Ấ\";s:1:\"A\";s:3:\"Ầ\";s:1:\"A\";s:3:\"Ẩ\";s:1:\"A\";s:3:\"Ẫ\";s:1:\"A\";s:3:\"Ậ\";s:1:\"A\";s:2:\"á\";s:1:\"a\";s:2:\"à\";s:1:\"a\";s:3:\"ả\";s:1:\"a\";s:2:\"ã\";s:1:\"a\";s:3:\"ạ\";s:1:\"a\";s:2:\"ă\";s:1:\"a\";s:3:\"ắ\";s:1:\"a\";s:3:\"ằ\";s:1:\"a\";s:3:\"ẳ\";s:1:\"a\";s:3:\"ẵ\";s:1:\"a\";s:3:\"ặ\";s:1:\"a\";s:2:\"â\";s:1:\"a\";s:3:\"ấ\";s:1:\"a\";s:3:\"ầ\";s:1:\"a\";s:3:\"ẩ\";s:1:\"a\";s:3:\"ẫ\";s:1:\"a\";s:3:\"ậ\";s:1:\"a\";s:2:\"É\";s:1:\"E\";s:2:\"È\";s:1:\"E\";s:3:\"Ẻ\";s:1:\"E\";s:3:\"Ẽ\";s:1:\"E\";s:3:\"Ẹ\";s:1:\"E\";s:2:\"Ê\";s:1:\"E\";s:3:\"Ế\";s:1:\"E\";s:3:\"Ề\";s:1:\"E\";s:3:\"Ể\";s:1:\"E\";s:3:\"Ễ\";s:1:\"E\";s:3:\"Ệ\";s:1:\"E\";s:2:\"é\";s:1:\"e\";s:2:\"è\";s:1:\"e\";s:3:\"ẻ\";s:1:\"e\";s:3:\"ẽ\";s:1:\"e\";s:3:\"ẹ\";s:1:\"e\";s:2:\"ê\";s:1:\"e\";s:3:\"ế\";s:1:\"e\";s:3:\"ề\";s:1:\"e\";s:3:\"ể\";s:1:\"e\";s:3:\"ễ\";s:1:\"e\";s:3:\"ệ\";s:1:\"e\";s:2:\"Í\";s:1:\"I\";s:2:\"Ì\";s:1:\"I\";s:3:\"Ỉ\";s:1:\"I\";s:2:\"Ĩ\";s:1:\"I\";s:3:\"Ị\";s:1:\"I\";s:2:\"í\";s:1:\"i\";s:2:\"ì\";s:1:\"i\";s:3:\"ỉ\";s:1:\"i\";s:2:\"ĩ\";s:1:\"i\";s:3:\"ị\";s:1:\"i\";s:2:\"Ó\";s:1:\"O\";s:2:\"Ò\";s:1:\"O\";s:3:\"Ỏ\";s:1:\"O\";s:2:\"Õ\";s:1:\"O\";s:3:\"Ọ\";s:1:\"O\";s:2:\"Ô\";s:1:\"O\";s:3:\"Ố\";s:1:\"O\";s:3:\"Ồ\";s:1:\"O\";s:3:\"Ổ\";s:1:\"O\";s:3:\"Ỗ\";s:1:\"O\";s:3:\"Ộ\";s:1:\"O\";s:2:\"Ơ\";s:1:\"O\";s:3:\"Ớ\";s:1:\"O\";s:3:\"Ờ\";s:1:\"O\";s:3:\"Ở\";s:1:\"O\";s:3:\"Ỡ\";s:1:\"O\";s:3:\"Ợ\";s:1:\"O\";s:2:\"ó\";s:1:\"o\";s:2:\"ò\";s:1:\"o\";s:3:\"ỏ\";s:1:\"o\";s:2:\"õ\";s:1:\"o\";s:3:\"ọ\";s:1:\"o\";s:2:\"ô\";s:1:\"o\";s:3:\"ố\";s:1:\"o\";s:3:\"ồ\";s:1:\"o\";s:3:\"ổ\";s:1:\"o\";s:3:\"ỗ\";s:1:\"o\";s:3:\"ộ\";s:1:\"o\";s:2:\"ơ\";s:1:\"o\";s:3:\"ớ\";s:1:\"o\";s:3:\"ờ\";s:1:\"o\";s:3:\"ở\";s:1:\"o\";s:3:\"ỡ\";s:1:\"o\";s:3:\"ợ\";s:1:\"o\";s:2:\"Ú\";s:1:\"U\";s:2:\"Ù\";s:1:\"U\";s:3:\"Ủ\";s:1:\"U\";s:2:\"Ũ\";s:1:\"U\";s:3:\"Ụ\";s:1:\"U\";s:2:\"Ư\";s:1:\"U\";s:3:\"Ứ\";s:1:\"U\";s:3:\"Ừ\";s:1:\"U\";s:3:\"Ử\";s:1:\"U\";s:3:\"Ữ\";s:1:\"U\";s:3:\"Ự\";s:1:\"U\";s:2:\"ú\";s:1:\"u\";s:2:\"ù\";s:1:\"u\";s:3:\"ủ\";s:1:\"u\";s:2:\"ũ\";s:1:\"u\";s:3:\"ụ\";s:1:\"u\";s:2:\"ư\";s:1:\"u\";s:3:\"ứ\";s:1:\"u\";s:3:\"ừ\";s:1:\"u\";s:3:\"ử\";s:1:\"u\";s:3:\"ữ\";s:1:\"u\";s:3:\"ự\";s:1:\"u\";s:2:\"Ý\";s:1:\"Y\";s:3:\"Ỳ\";s:1:\"Y\";s:3:\"Ỷ\";s:1:\"Y\";s:3:\"Ỹ\";s:1:\"Y\";s:3:\"Ỵ\";s:1:\"Y\";s:2:\"ý\";s:1:\"y\";s:3:\"ỳ\";s:1:\"y\";s:3:\"ỷ\";s:1:\"y\";s:3:\"ỹ\";s:1:\"y\";s:3:\"ỵ\";s:1:\"y\";s:2:\"Đ\";s:1:\"D\";s:2:\"đ\";s:1:\"d\";}}"', true));
}
/**
* Configuration
*
* @param boolean $applyAll True = Apply all available char set
* @param array $charSet Selection
* @param boolean $lowercase True = Return result as lower case
*/
public function config($applyAll = false, $charSet = array(), $lowercase = false) {
$this->lowercase = (boolean) $lowercase;
if ((boolean) $applyAll) {
$this->charSet = self::$maps;
}
elseif (is_array($charSet) && !empty($charSet)) {
foreach ($charSet as $v) {
if (array_key_exists($v, self::$maps)) {
$this->charSet[$v] = self::$maps[$v];
}
}
}
if (!empty($this->charSet)) {
$flattened = array();
array_walk_recursive($this->charSet, function($v, $k) use (&$flattened) {
(!is_int($k)) ? $flattened[$k] = $v : $flattened[] = $v;
});
$this->charSet = $flattened;
}
}
/**
* Run
*
* @param array|string $data Values to format
* @return array|string
*/
public function slugify($data) {
if (is_array($data)) {
foreach ($data as $k => $v) {
$data[$k] = $this->slugify($v);
}
return $data;
}
else {
$ndata = mb_convert_encoding((string) $data, 'UTF-8', mb_list_encodings());
if (!empty($this->charSet)) {
$ndata = strtr($ndata, $this->charSet);
}
if ($this->lowercase) {
$ndata = mb_strtolower($ndata);
}
// Replace non letter or digits by - then Remove -
return trim(preg_replace('~[^\\pL\d]+~u', '-', $ndata), '-');
}
}
/**
* Get available char set list in string (For viewing only)
*
* @return string Result
*/
public function viewList() {
$text = '';
$textformat = 'Type: %s<br><br>%s<br><br>';
foreach (self::$maps as $k => $v) {
$text .= sprintf($textformat, $k, implode(', ', array_keys($v)));
}
return $text;
}
}
|