문자열에서 줄 바꿈 (문자 없음)을 제거하는 방법은 무엇입니까?
이것은 속임수처럼 보이지만 확실하지는 않습니다. 나는 웹의 나머지 부분뿐만 아니라 SO를 검색하여 내 문제에 대한 답을 찾았으며 동일한 불충분 한 "해결책"을 반복해서 찾았습니다. 어쨌든, 여기에 간다 :
텍스트 영역의 사용자 입력을 MySQL 데이터베이스 (WordPress 환경 내)에 저장하고 있지만이 문제와 관련이 없습니다. 나중에 DB에서 검색되어 사이트 백엔드의 관리자에게 표시됩니다. 사용자가 줄 바꿈이있는 텍스트를 제출할 때 문제가 발생합니다 (예 : Enter 키를 누름).
샘플 문자열은 다음과 같습니다.
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!
Greetings,
Bill
문자열에는 줄 끝 문자 ( "\ n", "\ r"등)가 없습니다.
nl2br()
HTML 출력을 생성하는 데 사용 하고 있지만 충분하지 않습니다. 결과는 다음과 같습니다.
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill
내가 이해하는 한, nl2br()
태그를 삽입하고 처음에 줄 바꿈을 대체하지 않기 때문에 예상되는 결과는 무엇입니까?
그러나 필요한 형식은 다음과 같습니다.
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br /><br />Greetings,<br />Bill
문자열에 "\ n"과 같은 EOL 문자가 포함되어 str_replace()
있거나 문자열을 사용하여 preg_replace()
수행 했거나 수행 할 수는 있지만 문자가 없으면 해당 기능 중 하나를 공급할 바늘이 없습니다. 처음에.
DB의 관련 필드에 수동으로 액세스하고 모든 줄 바꿈에 대해 백 스페이스를 누르고 나중에 문자열 작업으로 수행하려는 작업을 수행 할 수 있습니다. 따라서 위의 형식이 필요하다는 것을 알고 있습니다.
모든 줄 바꿈과 캐리지 리턴을 제거하는 preg으로 대체 할 수 있어야합니다. 코드는 다음과 같습니다
preg_replace( "/\r|\n/", "", $yourString );
\n
문자가 나타나지 않더라도 캐리지 리턴을 받으면 보이지 않는 문자가 있습니다. preg replace는 그것들을 잡고 수정해야합니다.
Ben의 솔루션 은 수용 가능하지만 str_replace () 는 preg_replace () 보다 훨씬 빠릅니다.
$buffer = str_replace(array("\r", "\n"), '', $buffer);
적은 CPU 전력을 사용하여 세계 이산화탄소 배출량을 줄입니다.
$str = "
Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!<br />
<br />
Greetings,<br />
Bill";
echo str_replace(array("\n", "\r"), '', $str); // echo $str in a single line
nl2br()
줄 바꿈을 전혀 제거하지 않기 때문 입니다.
반환와 문자열
<br />
또는<br>
이전에 삽입 된 모든 줄 바꿈 (\r\n
,\n\r
,\n
및\r
).
str_replace
대신 사용하십시오 :
$string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
PHP 트림을 사용할 수도 있습니다
이 함수는 str의 시작과 끝에서 공백이 제거 된 문자열을 반환합니다. 두 번째 매개 변수가 없으면 trim ()은 다음 문자를 제거합니다.
- ""(ASCII 32 (0x20)), 일반 공간.
- "\ t"(ASCII 9 (0x09)), 탭.
- "\ n"(ASCII 10 (0x0A)), 새 줄 (줄 바꿈).
- "\ r"(ASCII 13 (0x0D)), 캐리지 리턴
- "\ 0"(ASCII 0 (0x00)), NUL 바이트
- 세로 탭 "\ x0B"(ASCII 11 (0x0B))
Windows에서도 올바르게 작동하려면 사용하는 것이 좋습니다.
$buffer = str_replace(array("\r\n", "\r", "\n"), "", $buffer);
"\r\n"
-Windows, "\r"
-Mac 및 "\n"
Linux-
str_replace (PHP_EOL, null, $ str);
좀 더 기능적인 것 (어디서나 사용하기 쉬운) :
function strip_carriage_returns($string)
{
return str_replace(array("\n\r", "\n", "\r"), '', $string);
}
검색 대체 매개 변수로 PHP_EOL 을 사용하는 것도 좋습니다. 명성.
이 작업을 수행하기 위해 3 줄을 사용하므로 $ s 를 "재료"로 고려 하십시오.
$s=str_replace(chr(10),'',$s);
$s=str_replace(chr(13),'',$s);
$s=str_replace("\r\n"),'',$s);
참고 URL : https://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from-the-string
'programing tip' 카테고리의 다른 글
ng serve 명령을 실행할 때“포트 4200이 이미 사용 중입니다” (0) | 2020.06.30 |
---|---|
안드로이드 clipToPadding 속성은 무엇을합니까? (0) | 2020.06.30 |
NSManagedObject의 특정 하위 클래스를 찾을 수 없습니다 (0) | 2020.06.29 |
위도 / 경도 좌표가 주어지면 도시 / 국가를 어떻게 알 수 있습니까? (0) | 2020.06.29 |
기본 long 배열을 Long 목록으로 변환 (0) | 2020.06.29 |