목차
문제 설명
문제 원인
해결책
옵션 1: 템플릿 엔진에 의한 SVG 이미지 구문 분석 끄기
솔루션 2: SVG 태그 이스케이프
요약
백엔드 개발 PHP 문제 PHP에서 템플릿 svg가 표시되지 않는 문제를 해결하는 방법

PHP에서 템플릿 svg가 표시되지 않는 문제를 해결하는 방법

Apr 19, 2023 am 10:07 AM

웹 개발에서는 이미지를 사용해야 하는 경우가 많으며, SVG(Scalable Vector Graphics)는 왜곡 없이 적응적으로 크기를 조정할 수 있는 매우 유용한 형식이므로 점점 개발자들의 선호도가 높아지고 있습니다. PHP에는 SVG 이미지 사용을 지원하는 라이브러리도 많이 있지만 때로는 SVG 이미지가 제대로 표시되지 않는 문제가 발생할 수 있습니다. 이 글에서는 템플릿 엔진을 사용하여 PHP에서 SVG 이미지를 로드할 때 SVG 이미지가 표시되지 않는 문제가 발생하는 상황 중 하나를 소개하고 해결책을 제시합니다.

문제 설명

PHP에서 템플릿 엔진을 사용하여 SVG 이미지를 로드했지만 페이지에 정상적으로 표시되지 않고 빈 영역만 나타납니다.

문제 원인

SVG 이미지의 파일 구조는 XML 선언, 네임스페이스 등 특수한 속성을 포함하는 일반적인 HTML 파일 구조와 다릅니다. 이러한 속성은 템플릿 엔진에서 태그로 인식되어 렌더링 시 문제를 일으키고 SVG 이미지가 제대로 표시되지 않게 됩니다.

해결책

옵션 1: 템플릿 엔진에 의한 SVG 이미지 구문 분석 끄기

템플릿 엔진의 구성 파일에서 SVG 이미지 구문 분석을 설정하여 SVG가 표시되지 않는 문제를 방지할 수 있습니다. 구문 분석 오류로 인해 제대로 작동합니다.

Smarty를 예로 들면 구성 파일에 다음 구성을 추가할 수 있습니다.

// 关闭对SVG图像的解析
$smarty->security_settings['allowed_tags'] = array_diff($smarty->security_settings['allowed_tags'], array('svg'));
$smarty->security_settings['allowed_modifiers'] = array_diff($smarty->security_settings['allowed_modifiers'], array('svg'));
로그인 후 복사

솔루션 2: SVG 태그 이스케이프

SVG 태그 앞에 이스케이프 문자 ""를 추가하면 템플릿 엔진이 이를 구문 분석하는 것을 방지할 수 있습니다. HTML 태그로 사용되므로 SVG 이미지가 제대로 표시되지 않는 문제를 피할 수 있습니다.

예를 들어,

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  <path d="M256 22.4C131.4 22.4 27.2 126.6 27.2 251.2S131.4 480 256 480s228.8-104.2 228.8-228.8S380.6 22.4 256 22.4zM256 406.2c-87.9 0-159.8-71.8-159.8-159.8s71.8-159.8 159.8-159.8 159.8 71.8 159.8 159.8S343.9 406.2 256 406.2z"/>
</svg>
로그인 후 복사

코드를

\<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
  \<path d="M256 22.4C131.4 22.4 27.2 126.6 27.2 251.2S131.4 480 256 480s228.8-104.2 228.8-228.8S380.6 22.4 256 22.4zM256 406.2c-87.9 0-159.8-71.8-159.8-159.8s71.8-159.8 159.8-159.8 159.8 71.8 159.8 159.8S343.9 406.2 256 406.2z"/>
\</svg>
로그인 후 복사

코드로 변환합니다. 이렇게 하면 템플릿 엔진이 SVG 태그를 HTML 태그로 인식하지 않고 SVG 이미지를 올바르게 렌더링합니다.

요약

PHP에서 SVG 이미지를 사용할 때, 특히 템플릿 엔진을 사용할 때 제대로 표시되지 않는 문제가 있을 수 있습니다. 이 문서에서는 템플릿 엔진의 SVG 이미지 구문 분석을 끄고 SVG 태그를 이스케이프하는 두 가지 솔루션에 대해 설명합니다. 이 문제가 발생하면 특정 상황에 따라 해당 솔루션을 선택할 수 있습니다.

위 내용은 PHP에서 템플릿 svg가 표시되지 않는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 배열의 중복 제거를위한 모범 사례는 무엇입니까? PHP 배열의 중복 제거를위한 모범 사례는 무엇입니까? Mar 03, 2025 pm 04:41 PM

PHP 배열의 중복 제거를위한 모범 사례는 무엇입니까?

PHP 배열 중복 제거가 키 이름 고유성을 활용할 수 있습니까? PHP 배열 중복 제거가 키 이름 고유성을 활용할 수 있습니까? Mar 03, 2025 pm 04:51 PM

PHP 배열 중복 제거가 키 이름 고유성을 활용할 수 있습니까?

최신 PHP 코딩 표준 및 모범 사례는 무엇입니까? 최신 PHP 코딩 표준 및 모범 사례는 무엇입니까? Mar 10, 2025 pm 06:16 PM

최신 PHP 코딩 표준 및 모범 사례는 무엇입니까?

PHP 확장 및 PECL로 어떻게 작업합니까? PHP 확장 및 PECL로 어떻게 작업합니까? Mar 10, 2025 pm 06:12 PM

PHP 확장 및 PECL로 어떻게 작업합니까?

PHP에서 메시지 대기열 (Rabbitmq, Redis)을 구현하는 방법은 무엇입니까? PHP에서 메시지 대기열 (Rabbitmq, Redis)을 구현하는 방법은 무엇입니까? Mar 10, 2025 pm 06:15 PM

PHP에서 메시지 대기열 (Rabbitmq, Redis)을 구현하는 방법은 무엇입니까?

PHP 배열의 중복 제거를위한 최적화 기술은 무엇입니까? PHP 배열의 중복 제거를위한 최적화 기술은 무엇입니까? Mar 03, 2025 pm 04:50 PM

PHP 배열의 중복 제거를위한 최적화 기술은 무엇입니까?

성능 손실을 위해 PHP 배열 중복 제거를 고려해야합니까? 성능 손실을 위해 PHP 배열 중복 제거를 고려해야합니까? Mar 03, 2025 pm 04:47 PM

성능 손실을 위해 PHP 배열 중복 제거를 고려해야합니까?

반사를 사용하여 PHP 코드를 분석하고 조작하는 방법은 무엇입니까? 반사를 사용하여 PHP 코드를 분석하고 조작하는 방법은 무엇입니까? Mar 10, 2025 pm 06:12 PM

반사를 사용하여 PHP 코드를 분석하고 조작하는 방법은 무엇입니까?

See all articles