<?php
$acceptSpaces = true;
$acceptUppercase = true;
$text = 'El méu tëst';
// Replace non letter or digits by -
$pattern = $acceptSpaces
? '~[^\\pL\d]+~u'
: '~[^ \\pL\d]+~u';
$text = preg_replace($pattern, '-', $text);
var_dump('preg replace', $text);
// Trim
$text = trim($text, '-');
var_dump('trim', $text);
// Transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
var_dump('transliterate', $text);
if(!$acceptUppercase) {
// Lowercase
$text = strtolower($text);
}
var_dump('lower', $text);
// Remove unwanted characters
$pattern = $acceptSpaces
? '~[^ -\w]+~'
: '~[^-\w]+~';
$text = preg_replace($pattern, '', $text);
var_dump('replace2', $text);
var_dump( $text );
preferences:
21.36 ms | 402 KiB | 5 Q