@astaxov81

Как найти все вхождения символа в строке от определенного количества?

Здравсвуйте.
Возник вопрос, имею функцию
function findReplaceSymbol($where)
{
    $where = strtolower(trim($where));
    if (strpos($where, ' ')) {
        $where = str_replace(' ', '-', $where);
        if (substr_count($where, '--') > 0){
            $where = str_replace('--', '-', $where);
        }
        return $where;
    }
    return $where;
}


Возможно ли сделать второй if более универсальным. Поясню, возможнли что бы второе условие проверяло на строку на вхождение не только двух дефисов (--), а количество от двух и более. То есть перым условием мы заменяем все пробелы на дефисы, а вторым, проверяем что бы в итоговой строке не шли несколько дефисов друг за другом.
  • Вопрос задан
  • 85 просмотров
Решения вопроса 2
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
если ты хочешь заменить любое кол-во --, то самое время начать изучать preg_replace()
Ответ написан
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
astaxov81 с помощью регулярок можно сразу заменять один или более пробелов, идущих подряд, на один пробел (или дефис)
$str = 'Какой-то  текст и ещё   не много   текста.';
echo findReplaceSymbol($str);

function findReplaceSymbol($str, $repl = '-'): string 
{
    return preg_replace('~\s+~', $repl, $str);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы