Вы также можете сделать это, чтобы слова не начинались и не заканчивались подчеркиванием, например _words_more_words_. Это позволит избежать начала и конца слова с пробелов.
Это интересно, поскольку пробелы в начале / конце строки не заменяются на _, а удаляются. Однако имейте в виду, что он может / будет также удалять другие символы из начала / конца строки как (\ r и \ n или табуляции).
Пол
1
Это часть моего кода, в котором пробелы заменяются подчеркиванием для именования моих файлов:
Strtrзаменяет одиночные символы вместо строк, поэтому это хорошее решение для этого примера. Предположительно strtrбыстрее, чем str_replace(но для этого варианта использования они оба неизмеримо быстры).
Круто, если бы нужно было преобразовать пробелы в "_" в нескольких длинных файлах (журналах?), Это могло бы быть заметно быстрее? (Хотя нет никаких доказательств / ссылок, это может быть интересным ответом для всех, кто интересуется скоростью выполнения).
Пол
Привет, Пол, я так думаю. Попробуйте и сравните его.
Thoracius Appotite
0
str_replace- очевидное решение. Но иногда нужно знать, какие именно пробелы есть. У меня проблема с пробелами в CSV-файле.
Было два символа, но один из них был 0160 (0x0A0), а другой был невидимым (0x0C2)
мое окончательное решение:
$str = preg_replace('/\xC2\xA0+/', '', $str);
Я нашел невидимый символ из HEX viewer от mc (полночный просмотрщик - F3 - F9)
$name = str_replace(' ', '_', $name);
http://php.net/manual/en/function.str-replace.php
источник
Используйте функцию PHP str_replace .
Что-то типа:
$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);
источник
вы можете
str_replace
сказать, что ваше имя находится в переменной$name
$result = str_replace(' ', '_', $name);
другой способ - использовать регулярное выражение, так как это поможет устранить 2-временное пространство и т. д.
$result= preg_replace('/\s+/', '_', $name);
источник
Strtr
заменяет одиночные символы вместо строк, поэтому это хорошее решение для этого примера. Предположительноstrtr
быстрее, чемstr_replace
(но для этого варианта использования они оба неизмеримо быстры).echo strtr('Alex Newton',' ','_'); //outputs: Alex_Newton
источник
str_replace
- очевидное решение. Но иногда нужно знать, какие именно пробелы есть. У меня проблема с пробелами в CSV-файле.Было два символа, но один из них был 0160 (0x0A0), а другой был невидимым (0x0C2)
мое окончательное решение:
$str = preg_replace('/\xC2\xA0+/', '', $str);
Я нашел невидимый символ из HEX viewer от mc (полночный просмотрщик - F3 - F9)
источник
'/\s+/'
?