필자는 php에 긴 줄이 있는데 여기에는 새로운 줄 ('\ n')이 포함되지 않습니다.개행 문자가없는 PHP 긴 문자열
필자의 코딩 규칙에서는 100 자보다 긴 행을 사용할 수 없습니다.
를 사용하지 않고 긴 문자열을 여러 줄로 나눌 수있는 방법이 있습니까? 연산자가 덜 효율적입니다 - 나는 concchar 문자열을 단일 문자열로 지정할 수 있기 때문에 2 문자열을 연결할 필요가 없습니다.
감사합니다.
Y
필자는 php에 긴 줄이 있는데 여기에는 새로운 줄 ('\ n')이 포함되지 않습니다.개행 문자가없는 PHP 긴 문자열
필자의 코딩 규칙에서는 100 자보다 긴 행을 사용할 수 없습니다.
를 사용하지 않고 긴 문자열을 여러 줄로 나눌 수있는 방법이 있습니까? 연산자가 덜 효율적입니다 - 나는 concchar 문자열을 단일 문자열로 지정할 수 있기 때문에 2 문자열을 연결할 필요가 없습니다.
감사합니다.
Y
:-) 미안 ... 짜증 당신 문자열에서 개행 문자를 제거 할 수 있습니다.
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace("\n", "", $myStr);
그런 일에 대해서는 여전히 연결 연산자 (.)를 사용합니다. opcode 캐싱 (APC)을 사용한다면 성능상의 불이익은 무시할 만합니다. DB 액세스와 루프 (루프 포함)를 런타임에 적용 할 때 눈에 띄는 것은 없습니다.
업데이트 :
읽기 아래의 페이지를 지정합니다. 위의 결론은 본문에서 쉽게 구할 수 없지만 신중한 검토에서 그것이 유효 함을 보여 주어야합니다.
http://blog.golemon.com/2006/06/how-long-is-piece-of-string.html
opcode 캐싱이 문자열 연결 속도에 어떤 영향을 줍니까? –
파서는 동적 요소가없는 문자열을 하나의 긴 문자열로 처리하여 연결 연산자를 삭제합니다. 나는이 주제를 오래 전에 파헤 쳤다. 내가 다시 찾을 수있게되면 관련 기사로이 답변을 업데이트 할 것입니다. –
이 모든 문제를 해결 올바른 코드입니다 : 그것은 리 오르 코헨의 대답을 기반으로
$myStr = "
here is my string
and it is spread across multiple lines
";
$myStr = str_replace(array("\r","\n"), "", $myStr);
는뿐만 아니라 캐리지 리턴 \ "R"를 제거합니다.
heredoc의 문제는 문자열에 줄 바꿈 문자를 포함한다는 것입니다.이 줄 바꿈 문자는 질문에 지정된 "줄 바꿈을 포함하지 않는 문자열"을 얻기 위해 제거해야합니다. – Amber
Lior이 –
으로 표시되면 스트립 처리 할 수 있습니다. 그렇지만 연결을 사용할 때와 마찬가지로 성능이 저하됩니다. – Amber