", 등)을 HTML 엔터티로 변환합니다."/> ", 등)을 HTML 엔터티로 변환합니다.">

>백엔드 개발 >PHP 문제 >PHP에서 문자를 엔터티로 변환하는 방법

PHP에서 문자를 엔터티로 변환하는 방법

青灯夜游
青灯夜游원래의
2022-03-10 16:31:403701검색

PHP에서 문자를 엔터티로 변환하는 방법: 1. htmlentities() 함수를 사용하여 문자를 HTML 엔터티로 변환합니다. 2. htmlspecialchars() 함수를 사용하여 미리 정의된 일부 문자("&", "04f4d27bbb441dbe588ab59cf85f8c18" 등)은 HTML 엔터티로 변환됩니다.

"PHP에서

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

php는 문자를 엔터티로 변환합니다.

1. htmlentities() 함수 사용

htmlentities() 함수는 문자를 HTML 엔터티로 변환합니다.

구문:

htmlentities(string,flags,character-set,double_encode)
Parameters Description
string 필수입니다. 변환할 문자열을 지정합니다.
flags 선택 사항입니다. 인용문 처리 방법, 잘못된 인코딩 및 사용할 문서 유형을 지정합니다.

사용 가능한 견적 유형:

  • ENT_COMPAT - 기본값. 큰따옴표만 인코딩됩니다.
  • ENT_QUOTES - 큰따옴표와 작은따옴표를 인코딩합니다.
  • ENT_NOQUOTES - 따옴표를 인코딩하지 마세요.

잘못된 인코딩:

  • ENT_IGNORE - 함수가 빈 문자열을 반환하는 대신 잘못된 인코딩을 무시합니다. 이는 보안에 영향을 미칠 수 있으므로 피해야 합니다.
  • ENT_SUBSTITUTE - 빈 문자열을 반환하는 대신 지정된 문자로 잘못된 인코딩을 유니코드 대체 문자 U+FFFD(UTF-8) 또는 FFFD;로 대체합니다.
  • ENT_DISALLOWED - 지정된 문서 유형의 잘못된 코드 포인트를 유니코드 대체 문자 U+FFFD(UTF-8) 또는 FFFD;로 바꿉니다.

사용할 문서 유형을 지정하는 추가 플래그:

  • ENT_HTML401 - 기본값. HTML 4.01로 처리된 코드.
  • ENT_HTML5 - 코드를 HTML 5로 처리합니다.
  • ENT_XML1 - XML ​​1 처리 코드로.
  • ENT_XHTML - XHTML 처리 코드로.
문자 집합 선택 사항입니다. 사용할 문자 집합을 지정하는 문자열입니다.

허용 값:

  • UTF-8 - 기본값. ASCII 호환 멀티바이트 8비트 유니코드
  • ISO-8859-1 - 서유럽
  • ISO-8859-15 - 서유럽(유로 기호 추가 + ISO-8859-1에서 프랑스어 및 핀란드 문자 누락)
  • cp866 - DOS 전용 키릴 문자 집합
  • cp1251 - Windows 전용 키릴 문자 집합
  • cp1252 - Windows 전용 서유럽 문자 집합
  • KOI8-R - 러시아어
  • BIG5 - 주로 대만에서 사용되는 중국어 번체
  • GB2312 - 간체 중국어, 국가 표준 문자 세트
  • BIG5-HKSCS - 홍콩 확장이 포함된 Big5
  • Shift_JIS - 일본어
  • EUC-JP - 일본어
  • MacRoman - Mac 운영 체제에서 사용되는 문자 세트

참고: 이전 버전 PHP 5.4, 인식할 수 없는 문자 집합은 무시되고 ISO-8859-1로 대체됩니다. PHP 5.4부터 인식할 수 없는 문자 세트는 무시되고 UTF-8로 대체됩니다.

double_encode 선택사항. 기존 HTML 엔터티를 인코딩할지 여부를 지정하는 부울 값입니다.
  • TRUE - 기본값. 각 엔터티가 변환됩니다.
  • FALSE - 기존 HTML 엔터티는 인코딩되지 않습니다.

示例:通过使用西欧字符集,把一些字符转换为 HTML 实体:

<?php
$str = &quot;My name is Øyvind Åsane. I&amp;#39;m Norwegian.&quot;;
echo htmlentities($str, ENT_QUOTES, &quot;ISO-8859-1&quot;); // Will only convert double quotes (not single quotes), and uses the character-set Western European
?&gt;

上面代码的 HTML 输出如下(查看源代码):

<!DOCTYPE html&gt;
<html&gt;
<body&gt;
My name is &amp;Oslash;yvind &amp;Aring;sane. I&amp;#039;m Norwegian.
</body&gt;
</html&gt;

上面代码的浏览器输出如下:

My name is Øyvind Åsane. I&amp;#39;m Norwegian.

2、使用htmlspecialchars()函数

htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。

预定义的字符是:

  • &amp; (和号)成为 &amp;

  • &quot; (双引号)成为 &quot;

  • ' (单引号)成为 '

  • e2ebd6839de922fcde543b47391ff5e5 (大于)成为 &gt;

语法:

htmlspecialchars(string,flags,character-set,double_encode)
参数 描述
string 必需。规定要转换的字符串。
flags 可选。规定如何处理引号、无效的编码以及使用哪种文档类型。

可用的引号类型:

  • ENT_COMPAT - 默认。仅编码双引号。
  • ENT_QUOTES - 编码双引号和单引号。
  • ENT_NOQUOTES - 不编码任何引号。

无效的编码:

  • ENT_IGNORE - 忽略无效的编码,而不是让函数返回一个空的字符串。应尽量避免,因为这可能对安全性有影响。
  • ENT_SUBSTITUTE - 把无效的编码替代成一个指定的带有 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD; 的字符,而不是返回一个空的字符串。
  • ENT_DISALLOWED - 把指定文档类型中的无效代码点替代成 Unicode 替代字符 U+FFFD(UTF-8)或者 &#FFFD;。

规定使用的文档类型的附加 flags:

  • ENT_HTML401 - 默认。作为 HTML 4.01 处理代码。
  • ENT_HTML5 - 作为 HTML 5 处理代码。
  • ENT_XML1 - 作为 XML 1 处理代码。
  • ENT_XHTML - 作为 XHTML 处理代码。
character-set 可选。一个规定了要使用的字符集的字符串。

允许的值:

  • UTF-8 - 默认。ASCII 兼容多字节的 8 位 Unicode
  • ISO-8859-1 - 西欧
  • ISO-8859-15 - 西欧(加入欧元符号 + ISO-8859-1 中丢失的法语和芬兰语字母)
  • cp866 - DOS 专用 Cyrillic 字符集
  • cp1251 - Windows 专用 Cyrillic 字符集
  • cp1252 - Windows 专用西欧字符集
  • KOI8-R - 俄语
  • BIG5 - 繁体中文,主要在台湾使用
  • GB2312 - 简体中文,国家标准字符集
  • BIG5-HKSCS - 带香港扩展的 Big5
  • Shift_JIS - 日语
  • EUC-JP - 日语
  • MacRoman - Mac 操作系统使用的字符集

注释:在 PHP 5.4 之前的版本,无法被识别的字符集将被忽略并由 ISO-8859-1 替代。自 PHP 5.4 起,无法被识别的字符集将被忽略并由 UTF-8 替代。

double_encode 可选。一个规定了是否编码已存在的 HTML 实体的布尔值。
  • TRUE - 默认。将对每个实体进行转换。
  • FALSE - 不会对已存在的 HTML 实体进行编码。

返回值::

  • 返回已转换的字符串。如果 string 包含无效的编码,则返回一个空的字符串,除非设置了 ENT_IGNORE 或者 ENT_SUBSTITUTE 标志。    

示例:把一些预定义的字符转换为 HTML 实体

<?php
$str = &quot;Jane &amp; &amp;#39;Tarzan&amp;#39;&quot;;
echo htmlspecialchars($str, ENT_COMPAT); // 默认,仅编码双引号
echo &quot;<br&gt;&quot;;
echo htmlspecialchars($str, ENT_QUOTES); // 编码双引号和单引号
echo &quot;<br&gt;&quot;;
echo htmlspecialchars($str, ENT_NOQUOTES); // 不编码任何引号
?&gt;

输出结果:

Jane &amp; &amp;#39;Tarzan&amp;#39;
Jane &amp; &amp;#39;Tarzan&amp;#39;
Jane &amp; &amp;#39;Tarzan&amp;#39;

推荐学习:《PHP视频教程

위 내용은 PHP에서 문자를 엔터티로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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