2014-06-19 2 views
0

$text 값에 HTML 서식이 포함되어 있는지 확인하여 HTML 또는 일반 텍스트로 PHPMailer 전자 메일을 조정할 수 있습니다. HTML로 볼 경우 텍스트는 줄 바꿈을 느슨하게합니다.텍스트에서 HTML 태그를 감지하는 방법은 무엇입니까?

$email_body="<p><b>This is html code</b></p>"; 
$text = htmlentities($email_body); 
if (strpos($text,"<b>") !== false) { 
    echo " Found a b ";     
} 

이것은 찾지 못합니다.

+0

난 당신이 뒤쪽으로 이것에 대해 갈 수 좋을 것; html을 생성 한 다음 태그를 제거하는 대신 아마도 텍스트로 시작하여 html 또는 일반 텍스트인지 여부에 따라 html을 작성해야합니다. – Retsam

+0

텍스트는 사용자가 직선 텍스트 또는 html 텍스트로 입력 할 수있는 양식에서 나옵니다. html 코드가 포함되어 있는지 확인해야합니다. 그러면 emailler에게 본문을 올바르게 포맷 할 수 있습니다. –

답변

1

preg_match 또는 DOMDocument를 통해이 사용하는 정규식을 할 수있는 방법이 있지만이 쉬운 방법 : 사용 strip_tags는 다음 비 벗겨 값으로 제거 값을 비교합니다.

// Set a test array of mixed strings. 
$email_body_array = array(); 
$email_body_array[] = "<p><b>This is html code.</b></p>"; 
$email_body_array[] = "This is plain text."; 
$email_body_array[] = "This is a <b>bold</b> statement.."; 

// Now roll through the strings & test them. 
foreach ($email_body_array as $email_body) { 
    $email_body_stripped = strip_tags($email_body); 
    $text = htmlentities($email_body); 
    if ($email_body !== $email_body_stripped) { 
    echo "That has HTML!<br />";     
    } 
    else { 
    echo "Boring, plain old text.<br />";     
    } 
} 

입니다 행동 개념을 보여주는 위의 출력 : HTML을 가지고

!

지루한, 평범한 오래된 텍스트입니다.

HTML이 있습니다!

관련 문제