2013-06-16 4 views
0

나는 php의 gd 라이브러리를 사용하여 내 페이지의 전자 메일을 이미지로 표시하려고하므로 스패머가 사용할 수 없습니다. 문제는 내가 따르고있는 튜토리얼이 Content-type : image/jpeg 헤더를 사용한다는 것이다. 즉,이 페이지에는 이미지 만있을 수 있습니다.이메일 주소를 이미지로 표시

어떻게하면 GD 라이브러리를 사용하여 HTML/PHP 페이지에서 이미지를 표시 할 수 있습니까? 아니면 다른 방법이 있습니까?

+0

코드를 표시하면 도움이 될 수 있습니다. 또한, 내가 아는 한, 헤더에 이미지를 보여주는 것이 유일한 방법 일 것입니다. 그것은 이미지를 보여주는 그것의 방법입니다. 다른 사람이 다른 방법을 사용하고 있다면, 알고 싶습니다. 헤더 앞에 HTML 출력이 없는지 확인하십시오. –

+0

추가 : HTML/PHP 페이지에서 이미지를 표시하려면 출력의 변수 이름에 따라 달라집니다. 나는. '$ image' (변수) - 그러면 단지'echo $ image; '라고 쓸 수 있습니다. –

+0

Welcome to Stack Overflow User2471133. 아직 [페이지에 대한] (http://stackoverflow.com/about) 읽기를 제공해야합니다. 또한 이미지의 base64로 인코딩 된 문자열을 포함하는 또 다른 방법이 있습니다. @Fred –

답변

1

페이지의 머리글을 변경하면 전체 페이지가 해당 머리글에 따라 렌더링됩니다. 전자 메일과 같은 것을 사용하는 경우 단일 페이지로 유지하려는 경우 몇 가지 옵션이 있습니다.

첫 번째 옵션은 base64 인코딩입니다. 여기

//create the image, $im 
//omit the header settings 

ob_start(); 
    imagejpeg($im); 
    $data = ob_get_contents(); 
ob_end_clean(); 

echo '<img src="data:image/jpeg;base64,'.base64_encode($data).'">'; 

우리는 클라이언트로가는 것을 막을 수있는 출력 버퍼를 배치하고 우리의 변수 $data에 저장합니다. 그런 다음 base64_encode을 사용하여 인코딩하고 브라우저에서 해석 할 수있는 방식으로 페이지에 출력합니다.

사용할 수있는가져 오기 방법도 있습니다.

if(isset($_GET['email'])) { 
    header("Content-type: image/jpeg"); 

    //create the image, $im 

    imagejpeg($im); 
    imagedestroy($im); 

    die; 
} 

echo '<img src="?email">'; 

실제로 우리는 이메일 입력과 if 문 처리 만 보내고 있습니다.

+0

'if' 블록의 끝에'exit'가 필요하다고 생각합니다. –

+0

@MisterMelancholy 예, 수정되었습니다. – jeremy

+0

잠깐 동안 문제가 해결 된 것을 보았지만 나중에 편집이 취소되었습니다. 거기에 없어요. –

관련 문제