development

줄 바꿈 문자를 만드는 방법?

big-blog 2020. 2. 25. 22:51
반응형

줄 바꿈 문자를 만드는 방법?


PHP에서 줄 바꿈 문자를 만들려고합니다.

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo '\r\n';

그런 다음 작성된 파일을 메모장에서 열고 문자 그대로 개행을 씁니다.

요한 1 서 \ r \ n 요한 1 서 \ r \ n 요한 1 서 \ r \ n

의 많은 변형을 시도 \r\n했지만 작동하지 않습니다. 개행이 개행으로 바뀌지 않는 이유는 무엇입니까?


큰 따옴표로 묶인 문자열이스케이프 시퀀스 \r\n'0x0D'및 '0x0A'로 각각 해석 하므로 원하는 경우 :

"\r\n"

반면 작은 따옴표로 묶인 문자열 은 이스케이프 시퀀스 \\만 알고 \'있습니다.

따라서 작은 따옴표로 묶은 문자열을 다른 곳에서 생성 된 줄 바꿈과 연결하지 않으면 (예 : 큰 따옴표로 묶은 문자열 "\r\n"사용 또는 chrfunction 사용 chr(0x0D).chr(0x0A)) 작은 따옴표로 묶은 문자열 내에서 줄 바꿈을 갖는 유일한 다른 방법은 문자 그대로 편집기에서 입력하는 것입니다.

$s = 'some text before the line break
some text after';

특정 문자 순서가 필요한 경우 편집기에서 줄 바꿈 설정을 확인하십시오 ( \r\n예 :).


플랫폼 독립적 인 라인 엔딩의 경우 다음 과 같이 미리 정의 된 PHP_EOL상수를 사용할 수 있습니다 .

echo $clientid, ' ', $lastname, 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

이것을 사용해야합니다 :

"\n"

PHP EOL을 보고 싶을 수도 있습니다 .


실제로 \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";

w3school는 다음과 같이 제공했습니다.

echo nl2br("One line.\n Another line.");

이 기능을 사용하면 할 수 있습니다 .. 나는 위에서 언급 한 다른 방법을 시도했지만 도움이되지 않습니다.


어떤 이유로 든 PHP에서 줄 바꿈 이스케이프에 대해 묻는 모든 단일 게시물은 작은 따옴표로 묶은 문자열에 줄 바꿈을 삽입하면 생각대로 정확하게 수행됩니다.

예 1.

 echo 'foo\nbar';

예제 1에서는 원하는 결과를 명확하게 인쇄하지 않지만 작은 따옴표로 줄 바꿈을 이스케이프 할 수는 없지만 다음과 같이 할 수 있습니다.

예 2.

 echo 'foo
 bar';

예제 2에는 정확히 원하는 동작이 있습니다. 불행하게도 삽입되는 줄 바꿈은 운영 체제에 따라 다릅니다. 웹 브라우저 / 서버가 줄 바꿈을 \ r, \ r \ n 또는 \ n인지 올바르게 해석하므로 일반적으로 문제가되지 않습니다.

분명히 웹 브라우저와 여러 운영 체제에 다른 수단을 통해 파일을 배포하려는 경우에는이 솔루션이 적합하지 않습니다. 이 경우 다른 답변 중 하나가 표시됩니다.

참고 : 기능이 풍부한 텍스트 편집기를 사용하면 파일을 편집하는 운영 체제와 다른 운영 체제에서 개행을 나타내는 이진 문자로 개행을 삽입 할 수 있어야합니다. 다른 모든 방법이 실패하면 16 진 편집기를 사용하여 이진 ASCII 문자를 삽입하면됩니다.


캐리지 리턴에는 chr (13)을 사용하고 줄 바꾸기에는 chr (10)을 사용하십시오.

echo $clientid;
echo ' ';
echo $lastname;
echo ' ';
echo chr (13). chr (10);

텍스트 문자열에서 줄 바꿈을 얻으려면 PHP nl2br을 사용하십시오.

$ text = "마누는 좋은 소년입니다. (Enter) 그는 잘 코딩 할 수 있습니다.

echo nl2br ($ text);

결과.

마누는 좋은 소년입니다.

그는 잘 코딩 할 수 있습니다.


나는 또한 작은 따옴표와 큰 따옴표 모두 에서이 조합을 시도했습니다. 그러나 아무도 효과가 없었습니다. 큰 따옴표에 \n더 잘 사용 하는 대신 <br/>. 이렇게 ..

$variable = "and";
echo "part 1 $variable part 2<br/>";
echo "part 1 ".$variable." part 2";

echo 문은 항상 <br>큰 따옴표 안에 사용 합니다.

참고 URL : https://stackoverflow.com/questions/4238433/php-how-to-create-a-newline-character



반응형