", dll.) ke dalam entiti HTML."/> ", dll.) ke dalam entiti HTML.">

Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar aksara kepada entiti dalam php

Bagaimana untuk menukar aksara kepada entiti dalam php

青灯夜游
青灯夜游asal
2022-03-10 16:31:403801semak imbas

Cara menukar aksara kepada entiti dalam PHP: 1. Gunakan fungsi htmlentities() untuk menukar aksara kepada entiti HTML 2. Gunakan fungsi htmlspecialchars() untuk menukar beberapa aksara yang telah ditetapkan ("&" , "4cde43364ae918d832fa2e5941dcc49d", dsb.) ke dalam entiti HTML.

"Bagaimana

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

php Tukar aksara kepada entiti

1 Gunakan fungsi htmlentities()

htmlentities() untuk menukar aksara kepada entiti HTML.

Sintaks:

htmlentities(string,flags,character-set,double_encode)
Parameter Penerangan
rentetan Diperlukan. Menentukan rentetan yang hendak ditukar.
bendera Pilihan. Menentukan cara mengendalikan petikan, pengekodan tidak sah dan jenis dokumen yang hendak digunakan.
参数 描述
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 实体进行编码。
Jenis petikan yang tersedia:
  • ENT_COMPAT - Lalai. Hanya petikan berganda dikodkan.
  • ENT_QUOTES - Mengekod petikan berganda dan tunggal.
  • ENT_NOQUOTES - Jangan kodkan sebarang petikan.
Pengekodan tidak sah:
  • ENT_IGNORE - Abaikan pengekodan tidak sah dan bukannya mempunyai fungsi mengembalikan rentetan kosong. Ini harus dielakkan kerana ini mungkin memberi kesan kepada keselamatan.
  • ENT_SUBSTITUTE - Menggantikan pengekodan yang tidak sah dengan aksara yang ditentukan dengan aksara gantian Unikod U FFFD (UTF-8) atau FFFD dan bukannya mengembalikan rentetan kosong.
  • ENT_DISALLOWED - Ganti titik kod yang tidak sah dalam jenis dokumen yang ditentukan dengan aksara gantian Unikod U FFFD (UTF-8) atau FFFD;.
Bendera tambahan yang menyatakan jenis dokumen untuk digunakan:
  • ENT_HTML401 - Lalai. Kod diproses sebagai HTML 4.01.
  • ENT_HTML5 - kod diproses sebagai HTML 5.
  • ENT_XML1 - sebagai kod pemprosesan XML 1.
  • ENT_XHTML - sebagai kod pemprosesan XHTML.
set aksara Pilihan. Rentetan yang menyatakan set aksara yang akan digunakan. Nilai yang dibenarkan:
  • UTF-8 - Lalai. Unicode 8-bit multibait serasi ASCII
  • ISO-8859-1 - Eropah Barat
  • ISO-8859-15 - Eropah Barat (menambahkan simbol Euro tiada bahasa Perancis daripada ISO-8859-1 dan abjad Finland)
  • cp866 - Set aksara Cyrillic untuk DOS
  • cp1251 - Set aksara Cyrillic untuk Windows
  • cp1252 - Set aksara Eropah Barat untuk Windows
  • KOI8-R - Rusia
  • BIG5 - Cina Tradisional, digunakan terutamanya di Taiwan
  • GB2312 - Cina Ringkas, set aksara standard kebangsaan
  • BIG5- HKSCS - Big5 dengan sambungan Hong Kong
  • Shift_JIS - Jepun
  • EUC-JP - Jepun
  • MacRoman - Set aksara yang digunakan oleh sistem pengendalian Mac
  • Nota: Dalam versi sebelum PHP 5.4, set aksara yang tidak dikenali akan diabaikan dan digantikan dengan ISO-8859-1. Mulai PHP 5.4, set aksara yang tidak dikenali diabaikan dan digantikan dengan UTF-8.
double_encode Pilihan. Nilai Boolean yang menentukan sama ada untuk mengekod entiti HTML sedia ada.
  • BENAR - Lalai. Setiap entiti akan ditukar.
  • FALSE - Entiti HTML sedia ada tidak akan dikodkan.

示例:通过使用西欧字符集,把一些字符转换为 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视频教程

Atas ialah kandungan terperinci Bagaimana untuk menukar aksara kepada entiti dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn