На легкую проблему походит решать, но Это не столь легко, как это кажется. У меня есть эта строка в PHP:
////%postname%/
Это - URL, и я никогда не хочу больше чем одну наклонную черту подряд. Я никогда не хочу удалить наклонные черты полностью.
Это - то, как это должно быть похожим:
/%postname%/
Поскольку структура могла выглядеть по-другому, мне нужна умная замена preg regexp, я думаю. Это должно работать с URL как это:
////%postname%//mytest/test///testing
который должен быть преобразован в это:
/%postname%/mytest/test/testing
Вот, пожалуйста:
$str = preg_replace('~/+~', '/', $str);
Или:
$str = preg_replace('~//+~', '/', $str);
Или даже:
$str = preg_replace('~/{2,}~', '/', $str);
Простая str_replace ()
также подойдет трюк (если имеется не более двух последовательных косых черт):
$str = str_replace('//', '/', $str);
Попробуйте:
echo preg_replace('#/{2,}#', '/', '////%postname%//mytest/test///testing');
function drop_multiple_slashes($str)
{
if(strpos($str,'//')!==false)
{
return drop_multiple_slashes(str_replace('//','/',$str));
}
return $str;
}
использует str_replace
.