preg_replace все пробелы

Я пытаюсь заменить все пробелы символами подчеркивания, и следующее не работает:

$id = "aa aa"; echo $id; preg_replace('/\s+/', '_', $id); echo $id; 

печать

 aa aaaa aa 

Solutions Collecting From Web of "preg_replace все пробелы"

Функция 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);