@@ -131,4 +131,56 @@ public static function truncateWords($string, $count, $suffix = '...'): string
131131
132132 return $ string ;
133133 }
134+
135+ /**
136+ * Get translit string
137+ * @param string $str input string
138+ * @param array $params iso key - array and lower key - boolean
139+ * @return string
140+ */
141+ public static function translit (string $ str , array $ params = []): string
142+ {
143+ if (!$ str ) return (string ) $ str ;
144+ if (empty ($ params ['iso ' ])) {
145+ $ params ['iso ' ] = [
146+ "Є " =>"YE " ,"І " =>"I " ,"Ѓ " =>"G " ,"і " =>"i " ,"№ " =>"" ,"є " =>"ye " ,"ѓ " =>"g " ,
147+ "А " =>"A " ,"Б " =>"B " ,"В " =>"V " ,"Г " =>"G " ,"Д " =>"D " ,
148+ "Е " =>"E " ,"Ё " =>"YO " ,"Ж " =>"ZH " ,
149+ "З " =>"Z " ,"И " =>"I " ,"Й " =>"J " ,"К " =>"K " ,"Л " =>"L " ,
150+ "М " =>"M " ,"Н " =>"N " ,"О " =>"O " ,"П " =>"P " ,"Р " =>"R " ,
151+ "С " =>"S " ,"Т " =>"T " ,"У " =>"U " ,"Ф " =>"F " ,"Х " =>"X " ,
152+ "Ц " =>"C " ,"Ч " =>"CH " ,"Ш " =>"SH " ,"Щ " =>"SHH " ,"Ъ " =>"' " ,
153+ "Ы " =>"Y " ,"Ь " =>"" ,"Э " =>"E " ,"Ю " =>"YU " ,"Я " =>"YA " ,
154+ "а " =>"a " ,"б " =>"b " ,"в " =>"v " ,"г " =>"g " ,"д " =>"d " ,
155+ "е " =>"e " ,"ё " =>"yo " ,"ж " =>"zh " ,
156+ "з " =>"z " ,"и " =>"i " ,"й " =>"j " ,"к " =>"k " ,"л " =>"l " ,
157+ "м " =>"m " ,"н " =>"n " ,"о " =>"o " ,"п " =>"p " ,"р " =>"r " ,
158+ "с " =>"s " ,"т " =>"t " ,"у " =>"u " ,"ф " =>"f " ,"х " =>"x " ,
159+ "ц " =>"c " ,"ч " =>"ch " ,"ш " =>"sh " ,"щ " =>"shh " ,"ъ " =>"" ,
160+ "ы " =>"y " ,"ь " =>"" ,"э " =>"e " ,"ю " =>"yu " ,"я " =>"ya " ,"« " =>"" ,"» " =>"" ,"— " =>"- "
161+ ];
162+ }
163+ if (!isset ($ params ['lower ' ])) {
164+ $ params ['lower ' ] = true ;
165+ }
166+ return $ params ['lower ' ] ? \strtolower (\strtr ($ str , $ params ['iso ' ])) : \strtr ($ str , $ params ['iso ' ]);
167+ }
168+
169+ /**
170+ * Add slashes in string
171+ * @param string|string[] $str
172+ * @param array $params
173+ * @return string|string[]
174+ */
175+ public static function addSlashes ($ str , array $ params = [])
176+ {
177+ if (!$ str ) return $ str ;
178+ if (!isset ($ params ['search ' ])) {
179+ $ params ['search ' ] = ["\\" , "\"" , "' " ];
180+ }
181+ if (!isset ($ params ['replace ' ])) {
182+ $ params ['replace ' ] = ["\\\\" , '\\" ' , "\\' " ];
183+ }
184+ return \str_replace ($ params ['search ' ], $ params ['replace ' ], $ str );
185+ }
134186}
0 commit comments