변수에 저장된 컨텐츠의 상단에서 처음 4 줄을 삭제합니다.

StackOverflow https://stackoverflow.com/questions/758488

  •  09-09-2019
  •  | 
  •  

문제

표시되기 전에 처음 4 줄이 벗겨져있는 변수가 있습니다.

Error Report Submission
From: First Last, email@example.com, 12345
Date: 2009-04-16 04:33:31 pm Eastern

The content to be output starts here and can go on for any number of lines.

'보류 중 오류 보고서'보기의 일부로 표시하기 전에이 데이터에서 '헤더'를 제거해야합니다.

도움이 되었습니까?

해결책

음. 나는 누군가가 멋진/짧은/더 좋은 것을 생각해 낼 것이라고 확신하지만, 어떻습니까?

$str = implode("\n", array_slice(explode("\n", $str), 4));

그것이 너무보기 흉한 경우, 당신은 항상 그것을 추상화 할 수 있습니다.

function str_chop_lines($str, $lines = 4) {
    return implode("\n", array_slice(explode("\n", $str), $lines));
}

$str = str_chop_lines($str);

편집하다: 좀 더 생각하면 사용하지 않을 것입니다. str_chop_lines 응용 프로그램의 많은 부분 에서이 작업을 수행 할 계획이 아니라면 기능합니다. 원래의 원-라이너는 충분히 분명하고 생각합니다. str_chop_lines 함수 정의에 가지 않고 기본값이 4임을 인식하지 못할 수 있습니다.

다른 팁

$content = preg_replace("/^(.*\n){4}/", "", $content);

strpos는 많은 도움을줍니다. 예가 있습니다.

// $myString = "blah blah \n \n \n etc \n \n blah blah";

$len = strpos($myString, "\n\n"); 
$string = substr($myString, $len, strlen($myString) - $len);

$ String은 두 개의 신약을 연속으로 찾은 후 문자열을 포함합니다.

문자열을 사용 사용 배열로 분할하십시오 split(rex), 어디 rex 두 개의 연속 신축성과 일치 한 다음 첫 번째 요소 (헤더)를 제외하고 전체 배열을 연결합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top