У меня есть скрипт PHP, который будет вводить имя пользователя: Alex_Newton
,
Однако некоторые пользователи будут использовать пробел, а не подчеркивание, поэтому мой вопрос:
Как я могу автоматически заменить пробелы с помощью подстроки в PHP?
$name = str_replace(' ', '_', $name);
Что касается других, которые объяснили, как это сделать, используя str_replace
, вы также можете использовать regex для достижения этого.
$name = preg_replace('/\s+/', '_', $name);
$name = str_replace(' ', '_', $name);
Используйте функцию str_replace для PHP.
Что-то вроде:
$str = str_replace(' ', '_', $str);
Вызовите http://php.net/str_replace : $input = str_replace(' ', '_', $input);
Использовать str_replace :
str_replace(" ","_","Alex Newton");
Вы также можете сделать это, чтобы слова не начинались и не заканчивались символами подчеркивания, такими как _words_more_words_. Это позволило бы избежать начала и окончания пробелов.
$trimmed = trim($string); // Trims both ends $convert = str_replace('', '_', $trimmed);
Это часть моего кода, которая делает пробелы в символах подчеркивания для обозначения моих файлов:
$file = basename($_FILES['upload']['name']); $file = str_replace(' ','_',$file);
Я использовал это
$option = trim($option); $option = str_replace(' ', '_', $option);
Strtr
заменяет одиночные символы вместо строк, поэтому это хорошее решение для этого примера. Предположительно strtr
быстрее str_replace
(но для этого str_replace
использования они оба неизмеримо быстры).
echo strtr('Alex Newton',' ','_'); //outputs: Alex_Newton