현재 위치: > 최신 기사 목록> OB_START ()를 사용하여 이미지 플립 결과를 캐시하고 웹 페이지로 직접 출력하는 방법은 무엇입니까?

OB_START ()를 사용하여 이미지 플립 결과를 캐시하고 웹 페이지로 직접 출력하는 방법은 무엇입니까?

M66 2025-06-11

PHP 이미지 처리 과정에서 때로는 이미지 (예 : 플립 위아래, 왼쪽 및 오른쪽 플립)를 뒤집어 파일에 저장 한 다음 액세스하는 대신 웹 페이지에 직접 처리 된 이미지 결과를 표시하기를 희망합니다. 또한 출력 스트림 캐싱 또는 처리와 같은 출력 컨텐츠를 제어하려면 OB_START ()가 편리합니다.

이 기사에서는 OB_START ()ImageFlip () 기능을 결합하여 이미지를 뒤집고 처리 결과를 브라우저에 직접 출력하는 방법을 보여줍니다. 또한 이미지 컨텐츠를 변수 (예 : CDN 또는 디버깅)로 캐시 할 수 있습니다.

1. 준비

PHP 환경에 GD 라이브러리가 활성화되어 있는지 확인하여 이미지 처리의 핵심 확장입니다. 터미널 또는 코드에서 phpinfo ()를 사용하여 확인할 수 있습니다.

 <?php
phpinfo();
?>

2. 이미지를 업로드하거나 지정하십시오

사용자에게 이미지를 업로드하거나 서버에서 이미지를 사용할 수 있습니다. 이 예에서는 이미 서버에있는 이미지 경로를 사용합니다.

 $imagePath = 'https://m66.net/images/sample.jpg'; // 사용 m66.net 도메인 이름의 이미지

3. OB_START ()를 사용하여 뒤집힌 이미지를 캐시하고 출력하십시오.

다음은 이미지를 왼쪽과 오른쪽으로 뒤집고 결과를 웹 페이지로 직접 출력하는 전체 샘플 코드입니다. 출력 캐시를 사용하면 다른 처리에 사용될 수 있습니다.

 <?php
// 이미지 경로를 지정합니다
$imageUrl = 'https://m66.net/images/sample.jpg';

// 이미지 콘텐츠를 얻으십시오
$imageData = file_get_contents($imageUrl);
if (!$imageData) {
    die('无法이미지 콘텐츠를 얻으십시오');
}

// 이미지 리소스를 만듭니다
$srcImage = imagecreatefromstring($imageData);
if (!$srcImage) {
    die('이미지 생성이 실패했습니다');
}

// 이미지를 뒤집습니다(왼쪽과 오른쪽을 뒤집습니다)
imageflip($srcImage, IMG_FLIP_HORIZONTAL);

// 출력 버퍼링을 켭니다
ob_start();

// 컨텐츠 유형을 설정합니다
header('Content-Type: image/jpeg');

// 출력 이미지
imagejpeg($srcImage);

// 캐시 된 콘텐츠를 얻으십시오
$imageOutput = ob_get_contents();

// 버퍼를 지우고 닫습니다
ob_end_clean();

// 출력 이미지内容到网页
echo $imageOutput;

// 이미지 자원을 파괴하십시오
imagedestroy($srcImage);
?>

IV. 설명

ob_start ()ob_get_contents ()

  • OB_START ()는 출력 버퍼링을 활성화합니다.

  • 모든 echo 또는 imagejpeg () 출력은 브라우저로 직접 전송되는 대신 캡처됩니다.

  • OB_GET_CONTENTS () 컨텐츠를 버퍼에서 가져옵니다 (여기서는 이진 내용이 있습니다).

  • OB_END_CLEAN ()은 버퍼를 지우고 닫습니다 (자동 출력 없음).

이점:

  • 캐시 파일 저장 또는 추가 처리 수행과 같이 출력은 유연하게 제어 될 수 있습니다.

  • 초기 출력 내용으로 인한 헤더 오류를 피하십시오.

5. 팁

  • $ imageOutput은 캐시 파일로 저장하거나 CDN에 업로드 할 수 있습니다.

  • 이미지가 크면 메모리 사용에주의를 기울이십시오.

  • 출력이 전송 된 스크립트에서 OB_START ()를 사용하는 것이 좋습니다.