Поместите это в перед регулярное выражение:
$title = str_replace ('&', 'and', $title);
Если вы работаете с акцентированными символами, вы хотите преобразовать их в us-ascii до регулярного выражения, чтобы не потерять их (á
станет a
, ő
станет o
и т. Д.):
$title = iconv ("UTF-8", "ISO-8859-1//TRANSLIT", $title);
Также ваш RegEx может быть немного упрощен. Это изменит последовательные не алфавитно-цифровые символы в один символ '-'.
$title = preg_replace ("/[^a-z0-9]+/i", "-", $title);
Также вы не хотите, чтобы ваш заголовок начинался или заканчивался -
. Следующее регулярное выражение удалит их:
$title = trim ($title, '-');