Ответ 1
$name = str_replace(' ', '_', $name);
У меня есть PHP Script, чтобы пользователи вводили имя типа: 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
(но для этого случая использования они оба неизмеримо быстры).
echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton
вы можете использовать str_replace
сказать, что ваше имя находится в переменной $name
$result = str_replace(' ', '_', $name);
Другой способ - использовать регулярные выражения, так как это поможет устранить 2-х временное пространство и т.д.
$result= preg_replace('/\s+/', '_', $name);