slugify ваша строка таким образом, он удалит нежелательные символы, включая -
.
trim () принимает в качестве второго параметра все символы, которые вы хотите удалить . Итак, взгляните на закомментированную строку THIS WILL FIX YOUR EXISTING PROBLEM
<?php
function slugify($string, $delimiter = '-'){
$clean = preg_replace("/[^a-zA-Z\/_|+ -]/", '', $string);
$clean = strtolower($clean);
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
$clean = trim($clean, $delimiter); // THIS WILL FIX YOUR EXISTING PROBLEM
return $clean;
}
echo slugify('-Top ways-to avoid list-');
echo PHP_EOL;
echo slugify('top 5 ways to get in top');
?>
Выход:
top-ways-to-avoid-list
top-ways-to-get-in-top
ДЕМО: https://3v4l.org/ljtlZ
ИЛИ с существующим кодом, обрезающим несколько символов -
или пробелы
<?php
echo strtolower(trim(preg_replace('/[^A-Za-z]+/', '-', '-Top ways-to avoid list-'),'- '));
echo PHP_EOL;
echo strtolower(trim(preg_replace('/[^A-Za-z]+/', '-', 'top 5 ways to get in top'),'- '));
?>
DEMO: https://3v4l.org/aBtHI