2013-07-21 3 views
-1

나는 이메일을 가지고 있고,이 이메일에 다음과 같은 내용이 있습니다정규식 표현 지원 이메일 내용

친애하는 사람, 답장을 보내

감사합니다. 감사

,

Someonelese

인용 [email protected] :

직각 브래킷 || 파이프 originaltext

직각 브래킷 || 파이프 originaltext

직각 브래킷 || 파이프 원래 텍스트

인용문에서 마지막 오른쪽 꺽쇠 괄호 또는 파이프와 원본 텍스트에 더하기까지 모두 추출해야합니다. 내 이론은 정규식을 사용하여 전자 메일 인용하기에 대한 정규식을 작성한 다음 오른쪽 화살표 브래킷이나 파이프 끝까지 그 아래의 모든 것을 사용하는 것입니다. 링크에 "인용 된 텍스트 숨기기"또는 "인용 된 텍스트 표시"라고 표시되는 경우도 있습니다. 궁금한 점이 있습니까? 또한 해당 정보가 필요하거나 이메일 응용 프로그램의 일부분입니까?

+0

나는 당신이 말하는 것을 전혀 이해하지 못했습니다. 나는 오른쪽 화살표 브래킷이나 파이프 끝까지 그 아래의 모든 전자 메일을 quoting에 대한 정규식을하고 싶다. 인덱스 문자열 함수는 무엇입니까 – jkushner

+0

스크립트에 어떤 전자 메일 형식이 제공됩니까? 어떻게 전달됩니까? 해당 줄을 지우는 것을 제외하고 "따옴표 붙은 텍스트 숨기기"링크를 고려할 필요는 없지만 기본적으로 텍스트가 전달되지 않는 "따옴표 붙은 텍스트 표시"시나리오를 고려해야 할 수도 있습니다. – abiessu

+0

제 사과, 제 말은 [strpos] (http://us3.php.net/manual/en/function.strpos.php) 함수입니다. 전자 메일의 라인을 통해 루프를 실행하고'strpos ($ thisline, "Quoting");에서 TRUE를 얻은 후에 모든 루프를 수집하십시오. 따옴표로 묶은 정규식 정규식이 false를 반환 한 후 수집을 중지합니다. 응답자가 인용 된 섹션 사이에 주석을 삽입하는 전자 메일을 고려할 필요가 없는지 확인하십시오. – abiessu

답변

0

내 솔루션은 $myarray이라는 배열에 줄로 저장되어있는 전자 메일의 내용에 따라 다음 줄에 표시됩니다. $outarray :

$doquote = FALSE; 
foreach ($myarray as $val) { 
    if (strpos($val, 'Quoting') !== FALSE) 
    $doquote = TRUE; 

    if ($doquote) { 
    if (preg_match('[|>]', $val, $matches) == 1) { 
     array_push($outarray, $matches[1]); 
    } 
    } 
} 
+0

"인용 된 텍스트보기"또는 "인용 된 텍스트 숨기기"에 대해 고려할 필요가 없습니다 "그들이 인용 된 텍스트 문자로 시작하지 않으면. – abiessu