답변:
큰 따옴표로 묶인 문자열 만 이스케이프 시퀀스 \r
와 \n
'0x0D'및 '0x0A'로 각각 해석 하므로 원하는 경우 :
"\r\n"
반면 작은 따옴표로 묶인 문자열 은 이스케이프 시퀀스 \\
및 만 알고 \'
있습니다.
따라서 작은 따옴표로 묶은 문자열을 다른 곳에서 생성 된 줄 바꿈과 연결하지 않으면 (예 : 큰 따옴표로 묶은 문자열 "\r\n"
사용 또는 chr
function 사용 chr(0x0D).chr(0x0A)
) 작은 따옴표로 묶은 문자열 내에서 줄 바꿈을하는 유일한 방법은 문자 그대로 편집기에서 입력하는 것입니다.
$s = 'some text before the line break
some text after';
특정 문자 순서가 필요한 경우 편집기에서 줄 바꿈 설정을 확인하십시오 ( \r\n
예 :).
PHP_EOL
대신 사용해야 합니다
PHP의 "echo"명령은 출력을 원시 html로 브라우저에 출력하므로 큰 따옴표로 묶어도 HTML의 개행 문자는 아무 의미가 없기 때문에 브라우저가 두 줄로 구문 분석하지 않습니다. 따라서 다음 중 하나를 사용해야합니다.
echo [output text]."<br>";
"echo"를 사용하거나 fwrite를 사용하는 경우 ...
fwrite([output text]."\n");
"\ n"대신 HTML 줄 바꿈이 출력됩니다.
플랫폼에 관계없이 올바른 PHP_EOL을 사용하여 올바른 문자를 얻으십시오.
http://us3.php.net/manual/en/reserved.constants.php
간단한 사용법 예 :
<?php
$data = 'First line' . PHP_EOL .
'Second line' . PHP_EOL .
'Third line';
file_put_contents("filename.txt", $data);
?>
큰 따옴표 사이의 문자열이 ""
보간됩니다. 즉, 이스케이프 된 문자를 인쇄 가능한 문자로 변환합니다.
작은 따옴표 사이의 문자열 ''
은 리터럴이므로 문자를 입력 한 그대로 처리됩니다.
같은 줄에 둘 다 가질 수 있습니다.
echo '$clientid $lastname ' . "\r\n";
echo "$clientid $lastname \r\n";
출력 :
$clientid $lastname
1 John Doe
echo "$clientid $lastname\r\n"
실제로 \r\n
출력의 html 쪽입니다. 이러한 문자를 사용하면 HTML 코드에서 개행을 작성하여 더 읽기 쉽게 만들 수 있습니다.
echo "<html>First line \r\n Second line</html>";
출력합니다 :
<html>First line
Second line</html>
페이지를 보는 것은 :
First line Second line
당신이 정말로 이것을 의미한다면, 당신은 작은 따옴표를 ""따옴표로 고치기 만하면됩니다 :
echo "\r\n";
그렇지 않으면 텍스트를 분할하려는 경우 샘플 '첫 번째 줄'과 '두 번째 줄'에서 html 코드를 사용해야합니다. <br />
:
First line<br />Second line
출력됩니다 :
First line
Second line
또한 전체 스크립트를 다음과 같이 바꾸면 더 읽기 쉽습니다.
echo "$clientid $lastname \r\n";
First line Second line
줄 바꿈을 포함한 모든 공백은 렌더링 된 출력에서 하나의 공백 문자로 압축됩니다. 또한 </br>
유효한 HTML 이외의 것입니다.
w3school는 다음과 같이 제공했습니다.
echo nl2br("One line.\n Another line.");
이 기능을 사용하면 할 수 있습니다 .. 나는 위에서 언급 한 다른 방법을 시도했지만 도움이되지 않습니다.
nl2br()
함수는 개행 문자를 <br />
HTML 태그 로 변환 합니다. 이는 브라우저 페이지에서 줄 바꿈을 만들지 만 텍스트 파일이나 JavaScript에서 줄 바꿈을 만들거나 화면이나 콘솔로 인쇄 할 때 유용 할 수 있습니다.
어떤 이유로 든 PHP에서 줄 바꿈 이스케이프에 대해 묻는 모든 단일 게시물은 작은 따옴표로 묶은 문자열에 줄 바꿈을 삽입하면 생각대로 정확하게 수행됩니다.
예 1.
echo 'foo\nbar';
예제 1에서는 원하는 결과를 명확하게 인쇄하지 않지만 작은 따옴표로 줄 바꿈을 이스케이프 할 수는 없지만 다음과 같이 할 수 있습니다.
예 2.
echo 'foo
bar';
예제 2에는 정확히 원하는 동작이 있습니다. 불행하게도 삽입되는 줄 바꿈은 운영 체제에 따라 다릅니다. 웹 브라우저 / 서버가 줄 바꿈을 \ r, \ r \ n 또는 \ n인지 올바르게 해석하므로 일반적으로 문제가되지 않습니다.
분명히 웹 브라우저와 여러 운영 체제에 다른 수단을 통해 파일을 배포하려는 경우이 솔루션이 적합하지 않습니다. 이 경우 다른 답변 중 하나가 표시됩니다.
참고 : 기능이 풍부한 텍스트 편집기를 사용하면 파일을 편집하는 운영 체제와 다른 운영 체제에서 개행을 나타내는 이진 문자로 개행을 삽입 할 수 있어야합니다. 다른 모든 방법이 실패하면 16 진 편집기를 사용하여 이진 ASCII 문자를 삽입하면됩니다.
텍스트 문자열에서 줄 바꿈을 얻으려면 PHP nl2br을 사용하십시오.
$ text = "마누는 좋은 소년입니다. (Enter) 그는 잘 코딩 할 수 있습니다.
echo nl2br ($ text);
결과.
마누는 좋은 소년입니다.
그는 잘 코딩 할 수 있습니다.
nl2br
함수는 개행 문자를 <br />
HTML 태그 로 변환 합니다. 문자열에 개행 문자가 포함되어 있지 않으면이 함수는 아무 것도 수행하지 않습니다! 또한 질문은 HTML의 단락 내에서 줄 바꿈에 관한 것이 아닙니다. 개행 문자 에 관한 것입니다 !
또한 작은 따옴표와 큰 따옴표 모두 에서이 조합을 시도했습니다. 그러나 아무도 효과가 없었습니다. 큰 따옴표에 \n
더 잘 사용 하는 대신 <br/>
. 이렇게 ..
$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";
캐리지 리턴에는 chr (13)을 사용하고 줄 바꾸기에는 chr (10)을 사용하십시오.
echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);
echo 문은 항상 <br>
큰 따옴표 안에 사용 합니다.
아무것도 나를 위해 일하지 않았다.
PHP_EOL
. "\r\n";
$NEWLINE_RE = '/(\r\n)|\r|\n/'; // take care of all possible newline-encodings in input file
$var = preg_replace($NEWLINE_RE,'', $var);
나를 위해 작동 :
$admin_email_Body = $admin_mail_body .'<br>' ."\r\n";
$admin_email_Body .= 'This is line 2 <br>' ."\r\n";
$admin_email_Body .= 'This is line 3 <br>' ."\r\n";