복붙노트

문자열에서 줄 바꿈 (문자 없음!)을 제거하는 방법?

PHP

문자열에서 줄 바꿈 (문자 없음!)을 제거하는 방법?

이것은 속은 것처럼 보일지 모르지만 안심 하셔도됩니다. 저는 문제의 해결책을 찾기 위해 웹뿐만 아니라 나머지를 검색하여 계속해서 동일한 "솔루션"을 찾아내는 일을 반복했습니다. 어쨌든, 여기에 간다 :

텍스트 영역에서 MySQL 데이터베이스 (WordPress 환경 내에서 사용자 입력 내용을 저장하고 있지만이 문제는 중요하지 않습니다.) 나중에 DB에서 검색되어 사이트 백엔드의 관리자에게 표시됩니다. 이 문제는 사용자가 줄 바꿈 (예 : Enter 키 누르기)이있는 텍스트를 제출할 때 발생합니다.

샘플 문자열은 다음과 같습니다.

Dear friends, I just wanted so Hello. How are you guys? I'm fine, thanks!

Greetings,
Bill

문자열에 끝 문자 ( "\ n", "\ r"등)가 없습니다.

HTML 출력을 생성하기 위해 nl2br ()을 사용하고 있지만 충분하지 않습니다. 결과는 다음과 같습니다.

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의 관련 필드에 수동으로 액세스 할 수 있으며, 모든 줄 바꿈을 위해 Backspace를 누르고 나중에이 문자열로 수행 할 작업을 수행 할 수 있습니다. 그래서 위의 형식이 필요하다는 것을 압니다.

해결법

  1. ==============================

    1.모든 개행과 캐리지 리턴을 제거하는 preg으로 대체 할 수 있어야합니다. 코드는 다음과 같습니다.

    모든 개행과 캐리지 리턴을 제거하는 preg으로 대체 할 수 있어야합니다. 코드는 다음과 같습니다.

    preg_replace( "/\r|\n/", "", $yourString );
    

    \ n 문자가 나타나지 않더라도 캐리지 리턴을 얻는다면 거기에 보이지 않는 문자가 있습니다. preg replace는 그 (것)들을 붙잡고 고쳐야한다.

  2. ==============================

    2.Ben의 해결책은 받아 들일 만하지만 str_replace ()는 preg_replace ()보다 훨씬 빠릅니다.

    Ben의 해결책은 받아 들일 만하지만 str_replace ()는 preg_replace ()보다 훨씬 빠릅니다.

    $buffer = str_replace(array("\r", "\n"), '', $buffer);
    

    CPU 사용량을 줄이면 전 세계의 이산화탄소 배출량을 줄일 수 있습니다.

  3. ==============================

    3.

    $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
    
  4. ==============================

    4.nl2br ()은 새 줄을 전혀 제거하지 않기 때문입니다.

    nl2br ()은 새 줄을 전혀 제거하지 않기 때문입니다.

    str_replace를 대신 사용하십시오 :

    $string = str_replace(array("\r\n", "\r", "\n"), "<br />", $string);
    
  5. ==============================

    5.Windows에서도 제대로 작동하려면 사용을 권장합니다.

    Windows에서도 제대로 작동하려면 사용을 권장합니다.

    $buffer = str_replace(array("\r\n", "\r", "\n"), "", $buffer);
    

    "\ r \ n"- Windows의 경우 "\ r"- Mac의 경우 "\ n"- Linux의 경우

  6. ==============================

    6.PHP trim을 사용할 수도 있습니다.

    PHP trim을 사용할 수도 있습니다.

  7. ==============================

    7.str_replace (PHP_EOL, null, $ str);

    str_replace (PHP_EOL, null, $ str);

  8. ==============================

    8.좀 더 기능적인 (어디서나 사용하기 쉽다) :

    좀 더 기능적인 (어디서나 사용하기 쉽다) :

    function strip_carriage_returns($string)
    {
        return str_replace(array("\n\r", "\n", "\r"), '', $string);
    }
    

    PHP_EOL을 검색 대체 매개 변수로 사용하는 것도 좋은 생각입니다! 명성.

  9. ==============================

    9.WP로 작업하고 있으므로 Wordpress wpautop () 함수를 활용하지 않으시겠습니까? https://codex.wordpress.org/Function_Reference/wpautop

    WP로 작업하고 있으므로 Wordpress wpautop () 함수를 활용하지 않으시겠습니까? https://codex.wordpress.org/Function_Reference/wpautop

    시험:

    wpautop( $string );
    
  10. from https://stackoverflow.com/questions/10757671/how-to-remove-line-breaks-no-characters-from-the-string by cc-by-sa and MIT license