Ответ 1
Функция preg_replace
не изменяет строку на месте. Он возвращает новую строку с результатом замены. Вы должны назначить результат обращения к переменной $id
:
$id = preg_replace('/\s+/', '_', $id);
Я пытаюсь заменить все пробелы символами подчеркивания, и следующее не работает:
$id = "aa aa";
echo $id;
preg_replace('/\s+/', '_', $id);
echo $id;
печатает
aa aaaa aa
Функция preg_replace
не изменяет строку на месте. Он возвращает новую строку с результатом замены. Вы должны назначить результат обращения к переменной $id
:
$id = preg_replace('/\s+/', '_', $id);
Я думаю, что str_replace()
может быть более уместным:
$id = "aa aa";
$id = str_replace(' ', '_', $id);
echo $id;
Вы забыли присвоить результат preg_replace
в свой $id
$id = preg_replace('/\s+/', '_', $id);
Нам нужно заменить пространство в строке "aa aa" на "_" (подчеркивание).\S + используется для сопоставления нескольких пробелов. Выход будет "aa_aa"
<?php
$id = "aa aa";
$new_id = preg_replace('/\s+/', '_', $id);
echo $new_id;
?>