function seo($input) { //remove single quote and dash $input = str_replace(array("'", "-"), "", $input); //convert to lowercase $input = mb_convert_case($input, MB_CASE_LOWER, "UTF-8"); //replace everything non an with dashes $input = preg_replace("#[^a-zA-Z0-9]+#", "-", $input); //replace multiple dashes with one $input = preg_replace("#(-){2,}#", "$1", $input); //trim dashes from beginning and end of string if any $input = trim($input, "-"); //voila return $input; }
OP:
echo seo(“Tom’s Fish & Chips”); //toms-fish-chips
echo seo(“1-2-3 Pizza”); //123-pizza