답변:
$name = str_replace(' ', '_', $name);
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);
Strtr
문자열 대신 단일 문자를 대체하므로이 예제에 적합한 솔루션입니다. 아마도 strtr
더 빠르다고 생각 str_replace
되지만 (이 사용 사례에서는 둘 다 엄청나게 빠릅니다).
echo strtr('Alex Newton',' ','_');
//outputs: Alex_Newton
str_replace
-확실한 해결책입니다. 그러나 때로는 공간이 정확히 무엇인지 알아야합니다. CSV 파일의 공백에 문제가 있습니다.
두 개의 문자가 있었지만 그 중 하나는 0160 (0x0A0)이고 다른 문자는 보이지 않습니다 (0x0C2)
내 최종 솔루션 :
$str = preg_replace('/\xC2\xA0+/', '', $str);
mc의 HEX 뷰어에서 보이지 않는 심볼을 찾았습니다 (자정 뷰어-F3-F9).
'/\s+/'
?