현재 위치: > 최신 기사 목록> PHP에서 quoted_printable_decode를 사용할 때 라인 브레이크를 올바르게 처리하는 방법 오작동 서식을 방지하는 방법은 무엇입니까?

PHP에서 quoted_printable_decode를 사용할 때 라인 브레이크를 올바르게 처리하는 방법 오작동 서식을 방지하는 방법은 무엇입니까?

gitbox 2025-07-17
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 이 부분은 기사의 내용과 관련이 없습니다.,초기화 코드 또는 주석을 배치 할 수 있습니다</span></span><span>
</span><span><span class="hljs-comment">// 예를 들어:</span></span><span>
</span><span><span class="hljs-comment">// 환경 변수 초기화,또는 인코딩 형식 등을 설정하십시오.</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: text/html; charset=utf-8'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>

<hr>

<h1>존재하다 PHP 사용 quoted_printable_decode 디코딩 할 때,라인 브레이크를 올바르게 처리하는 방법,지저분한 형식을 피하십시오?</h1>

<p>존재하다处理电子邮件内容或者一些사용 <code>quoted-printable

CRLF (Carriage Return Line Break)를 나타냅니다.

2. quoted_printable_decode () 함수 의 작동 원리

이 함수는 문자열에서 동일 부호를 인코딩하고 해당 문자로 변환합니다. 동시에, 라인 끝에서 부드러운 신자를 만나면 (즉, 라인 끝의 동일한 부호)가 제거되고 다음 줄의 내용이 스 플라이 싱됩니다.

그러나 때로는 디코딩 된 Newline 문자가 예상 한 형식이 아니므로 표시 될 때 형식의 혼란을 초래합니다.

3. 라인 파괴 형식의 차이

  • crlf (\ r \ n) : Windows 시스템의 기본 줄이 나옵니다.
  • LF (\ n) : UNIX/LINUX 및 MACOS (새 버전) 기본 줄이 나옵니다.
  • CR (\ R) : 이전 버전의 MacOS 기본 라인 브레이크.

PHP에서 라인 브레이크 문자는 다른 환경에서 일관되지 않게 처리되므로 형식 문제가 쉽습니다.

4. 자주 묻는 질문 예

<span><span>$ encoded</span></span> <span>=</span> <span><span>"hello = 0d = 0aworld = 0d = 0a!"</span></span> <span>;
</span><span><span>$ decoded</span></span> <span>=</span> <span><span class="function_ invoke__">quoted_printable_decode</span></span> <span>(</span> <span><span>$ encoded</span></span> <span>);
</span><span><span>에코</span></span><span> </span><span><span class="function_ invoke__">nl2br</span></span> <span>(</span> <span><span>$ decoded</span></span> <span>);
</span><p>이 시점에서 <span class="fun">$ decoded</span> 의 Newline 문자가 CRLF 인 경우 일부 브라우저 나 환경이 올바르게 인식되지 않거나 한 줄로 표시되거나 혼란 스러울 수 있습니다.</p><h2> 5. Newline 문자를 올바르게 처리하는 방법</h2><p> 라인 파괴로 인한 문제를 피하려면 모든 라인 브레이크를 통합 형식으로 균일하게 변환 할 수 있습니다. 일반적으로 유닉스 스타일 라인 <span class="fun">브레이크</span> 로 변환하는 것이 좋습니다. 샘플 코드는 다음과 같습니다.</p><pre>
<span><span>$ decoded</span></span> <span>=</span> <span><span class="function_ invoke__">quoted_printable_decode</span></span> <span>(</span> <span><span>$ encoded</span></span> <span>);

</span><span><span>// 모든 crlf (\ r \ n) 및 cr (\ r) Newline 문자를 LF (\ n)로 교체하십시오.</span></span><span>
</span><span><span>$ 정규화</span></span> <span>=</span> <span><span class="function_ invoke__">str_replace</span></span> <span>([</span> <span><span>"\ r \ n"</span></span> <span>,</span> <span><span>"\ r"</span></span> <span>],</span> <span><span>"\ n"</span></span> <span>,</span> <span><span>$ decoded</span></span> <span>);

</span><span><span>// NewLines를 표시하려면 HTML이 필요한 경우 NL2BR을 사용할 수 있습니다.</span></span><span>
</span><span><span>에코</span></span><span> </span><span><span class="function_ invoke__">nl2br</span></span> <span>(</span> <span><span class="function_ invoke__">htmlspecialchars</span></span> <span>(</span> <span><span>$ 정규화</span></span> <span>));
</span><h2>6. 요약</h2><ul><li> <span class="fun">quoted_printable_decode ()</span> 로 디코딩 한 후 Newline 형식은 CRLF 또는 CR 일 수 있습니다.</li><li> 포맷 장애를 피하기 위해 라인 중단을 LF (\ n)로 대체하는 것이 좋습니다.</li><li> HTML을 출력 할 때 <span class="fun"><a href="/ko/php/nl2br.html" target="_blank">NL2BR ()</a></span> 및 <span class="fun">htmlSpecialchars ()를</span> 사용하면 서식 및 보안을 보장 할 수 있습니다.</li></ul><p> 위의 방법을 통해 <span class="fun">quoted_printable_decode ()를</span> 사용할 때 라인이 나오는 형식 문제를 효과적으로 피할 수 있으므로 콘텐츠 표시가보다 표준화되고 명확 해집니다.</p></div></div>