public static function urlify($string, $spacer = '-')
 {
     $string = trim($string);
     $string = htmlspecialchars_decode($string, ENT_QUOTES);
     $string = strip_tags($string);
     $string = str_replace(array('$', '£', '€', '™', '®', '|'), array('', 'GBP ', 'EUR ', 'tm', 'r', ''), $string);
     $string = preg_replace('#(\\d)\\.(\\d)#', '$1 $2', $string);
     // make sure numbers with decimals don't mislead, e.g. 2.5 -> 25
     $tranliterator_rule = 'Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove; Lower();';
     if (function_exists('transliterator_list_ids')) {
         if (in_array('Latin-ASCII', transliterator_list_ids())) {
             $tranliterator_rule = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove; Lower();';
         }
     }
     if (function_exists('transliterator_transliterate')) {
         $string = str_replace('-', ' ', $string);
         $s = transliterator_transliterate($tranliterator_rule, $string);
     } else {
         if (class_exists('Transliterator')) {
             $string = str_replace('-', ' ', $string);
             $T = Transliterator::create($tranliterator_rule);
             $s = $T->transliterate($string);
         } else {
             $s = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
             $s = strtolower($s);
             $s = preg_replace('/[^a-z0-9\\-\\s]/', '', $s);
         }
     }
     $s = preg_replace('/[\\s\\-]+/', $spacer, $s);
     if (strlen($s) > 0) {
         return $s;
     } else {
         return PerchUtil::urlify_non_translit($string);
     }
 }