>  기사  >  백엔드 개발  >  PHP에서 이미지 캐시 파일 형식을 방지하는 방법

PHP에서 이미지 캐시 파일 형식을 방지하는 방법

PHPz
PHPz원래의
2023-04-12 15:06:32696검색

PHP는 널리 사용되는 서버 측 스크립팅 언어로, 웹 애플리케이션용 PHP 코드를 작성하고 서버에서 실행할 수 있습니다. PHP에서는 때때로 이미지 캐싱과 관련된 몇 가지 문제가 발생합니다. 예를 들어, 브라우저에서 웹사이트를 열면 해당 이미지가 업데이트되지 않거나 매우 느리게 변경됩니다. 이는 일반적으로 브라우저 또는 서버 캐싱 이미지로 인해 발생합니다. 따라서 이 기사에서는 PHP에서 이미지를 캐시 없는 파일 형식으로 만드는 방법을 소개합니다.

  1. 브라우저에서 이미지를 캐시하지 않도록 강제하기

기본적으로 브라우저는 다운로드한 이미지를 캐시하여 액세스 속도를 높일 수 있지만 몇 가지 문제도 발생합니다. PHP에서는 header() 함수를 사용하여 Cache-Control을 설정하여 브라우저의 캐시 시간을 제어할 수 있습니다. 예:

<?php
header("Cache-Control: no-cache, no-store, must-revalidate"); //强制浏览器不缓存
header("Expires: 0"); //指定过期时间为0
?>

이런 방식으로 서버가 사진을 반환하면 HTTP 응답 헤더를 설정하여 브라우저에 이 사진을 캐시하지 말고 매번 서버에서 최신 사진을 다운로드하도록 지시합니다.

  1. 사진 URL에 임의의 문자열 추가

사진 URL에 임의의 문자열을 추가하여 브라우저가 새로운 사진인 것처럼 인식하여 최신 사진을 다운로드하도록 하는 방법입니다. 임의 문자열은 타임스탬프, UUID 또는 임의 숫자일 수 있습니다. 예:

<?php
$img_url = &#39;http://example.com/images/logo.png?rand=&#39; . uniqid(); //在图片URL中添加一个唯一标识符
echo &#39;<img src="&#39; . $img_url . &#39;">';
?>

이 예에서는 URL 뒤에 임의의 숫자를 추가하면 이미지가 로드될 때마다 새 이미지가 다운로드됩니다.

  1. 이미지를 서버에 캐시할 수 없도록 설정

마지막 방법은 이미지를 서버에 캐시할 수 없도록 설정하는 것입니다. Apache 서버에서는 .htaccess 파일에 다음 코드를 추가하여 이미지 캐시를 취소할 수 있습니다.

<FilesMatch "\.(jpg|png|gif)$">
  Header set Cache-Control "max-age=0, no-store"
</FilesMatch>

이 코드는 .jpg, .png 및 .gif 파일에만 적용된다는 의미입니다. 응답 헤더 캐시를 설정합니다. -"max-age=0, no-store"로 제어합니다. 이렇게 하면 브라우저가 매번 서버에서 최신 이미지를 다운로드하게 됩니다.

요약

HTTP 응답 헤더를 수정하거나, URL에 임의의 매개변수를 추가하거나, 서버에 응답 헤더를 설정하여 PHP의 이미지에 캐시된 파일 형식이 없도록 만들 수 있습니다. 이런 방식으로 어떤 브라우저를 사용하든 최신 사진을 표시할 수 있어 사용자에게 더 나은 경험을 선사합니다.

위 내용은 PHP에서 이미지 캐시 파일 형식을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.