>백엔드 개발 >PHP 튜토리얼 >file_get_contents()가 원격 HTML의 특수 문자를 손상시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?

file_get_contents()가 원격 HTML의 특수 문자를 손상시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-08 07:17:10355검색

Why Does file_get_contents() Corrupt Special Characters in Remote HTML, and How Can I Fix It?

File_get_contents()가 HTML의 XML 형식을 깨뜨림

file_get_contents()를 사용하여 원격 HTML 문서에서 콘텐츠를 검색할 때 일부 특수 문자가 발생할 수 있습니다. 부조. 이는 주로 Ľ, Š, cz, Ť, Ž 등과 같은 문자가 포함된 UTF-8로 인코딩된 콘텐츠에서 발생합니다. 이러한 문자는 올바르게 렌더링되는 대신 Å, ¼, ¤ 및 유사한 무의미한 기호와 같은 손상된 버전을 표시합니다.

해결책:

이 문제를 해결하려면 mb_convert_encoding() 함수를 사용하여 콘텐츠를 HTML 엔터티로 검색했습니다. 수정된 코드는 다음과 같습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sk" lang="sk">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Language" content="sk" />
<title>Test</title>

</head>
<body>

<?php

$html = file_get_contents('http://example.com');
$convertedHtml = mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8");
echo $convertedHtml;

?>

</body>
</html>

UTF-8 문자를 해당 HTML 엔터티로 변환하여 로드된 HTML 문서에서 특수 문자가 올바르게 렌더링되도록 합니다.

위 내용은 file_get_contents()가 원격 HTML의 특수 문자를 손상시키는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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