PHP String htmlspecialchars()函数

PHP String htmlspecialchars()函数

htmlspecialchars()函数将特殊字符转换为HTML实体。它是PHP的内置函数,用于将所有预定义的字符转换为HTML实体。预定义的字符包括:

  • &(和号)转换为&
  • "(双引号)转换为"
  • '(单引号)转换为'
  • <(小于号)转换为<
  • >(大于号)转换为>

有一个字符串函数htmlspecialchars_decode(),它是htmlspecialchars()函数的反向操作。htmlspecialchars_decode()函数的主要目的是将特殊的HTML实体转换回字符。htmlspecialchars()函数和htmlspecialchars_decode()函数是互为相反的。htmlspecialchars()函数的语法如下:

语法

String htmlspecialchars ( string,flags, encoding,double_encode );

参数

$string: 此参数包含输入字符串。

$flags: 基本上,此参数用于保存一个或多个标志,用于指定如何处理无效的代码单元序列、引号和所使用的文档类型。ENT_COMPAT | ENT_HTML401 是默认值。下表中给出了可用的标志常量:

可用的标志常量

标志常量 描述
ENT_IGNORE 它丢弃验证失败的字符序列,而不会返回空字符串。
ENT_NOQUOTES 它不会转换任何字符串,保留单引号和双引号不变。
ENT_SUBSTITUDE 它会用Unicode替换字符U+FFFD(UTF-8)或&#FFFD替换验证失败的字符序列,而不是返回空字符串。
ENT_DISALLOWED 它会用给定文档类型的Unicode替换字符来替换验证失败的字符序列,而不是保留它们。
ENT_HTML401 它处理代码作为HTML 4.01版本。
ENT_XML1 它处理代码作为XML 1。
ENT_XHTML 它处理代码作为XHTML。
ENT_HTML5 它处理代码作为HTML5。

$encoding: 这是一个可选参数,定义在字符转换时使用的编码。编码的默认值因PHP版本而异。

PHP 5.6及以上版本中,默认值使用 default_charset 配置选项,而PHP 5.4和5.5使用UTF-8。

$double_encode: 当关闭double_encode时,PHP无法编码现有的HTML实体。默认情况下会转换所有字符。

描述

htmlspecialchars ( string string [ , intflags = ENT_COMPAT | ENT_HTML401 [ , string 
encoding = ini_get ("default_charset") [ , booldouble_encode = TRUE ] ] ] ) : string

有一些字符在HTML中具有特殊意义,如果需要保留它们的含义,必须使用HTML实体来表示。htmlspecialchars()函数会返回进行这些转换后的字符串。如果我们需要翻译所有具有关联命名实体的输入子字符串,则可以使用htmlentities()函数替代htmlspecialchars()。

htmlspecialchars()函数返回的值

它返回转换后的字符串,如果输入字符串无效或包含无效的代码序列,则返回一个空字符串。

htmlspecialchars()的示例

以下是一些htmlspecialchars()函数的示例。

示例1

<? php
    //string conversion example of htmlspecialchars () function
str = "This is <i>italic</i> text.";
echo htmlspecialchars(str, ENT_QUOTES);    //Will convert both single and double-quotes.
?>

浏览器输出

下面给出的输出是 浏览器输出 的代码。

PHP String htmlspecialchars()函数

HTML 输出

上述程序的 HTML 输出将会如下所示-

PHP String htmlspecialchars()函数

<DOCTYPE html>
<html>
<body>
This is _italic_ text.
</body>
</html>

可以在浏览器的源文件中查看HTML输出。打开浏览器 -> 更多工具 -> 开发者工具 -> 源文件,并按下Ctrl+P打开源文件。

PHP String htmlspecialchars()函数

示例2

<?php
    str1= "This is 'PHP'&'Java' program.";
    echo htmlspecialchars(str1, ENT_COMPAT);   //It will converts only double quotes.
    echo "</br>";
    echo htmlspecialchars(str1, ENT_QUOTES);   // Converts both double and single quotes
    echo "</br>";
    echo htmlspecialchars(str1, ENT_NOQUOTES); //It will not convert any quotes.
?>

浏览器输出

下面提供的输出是代码的 浏览器输出

PHP String htmlspecialchars()函数

HTML 输出

可以通过浏览器的查看源代码来查看上述程序的 HTML 输出 ,即 浏览器- > 更多工具 – > 开发者工具 – > 源代码,并按Ctrl+P打开查看源文件。

PHP String htmlspecialchars()函数

示例3

<?
    str=  '"PHP" is much easier than "Java".'. "\n";
    echo htmlspecialchars(str);    //will converts only double quotes.
    echo "</br>";
    echo htmlspecialchars(str, ENT_QUOTES);    //will converts both single and double quotes.
    echo "</br>";
    echo htmlspecialchars(str,  ENT_NOQUOTES); //will not convert neither single nor double-quotes.
    echo "</br>";

?>

浏览器输出

上述程序在浏览器上的输出如下所示:

PHP String htmlspecialchars()函数

HTML 输出

以下程序的 HTML 输出将如下所示。

PHP String htmlspecialchars()函数

<DOCTYPE html>
<html>
<body>
       "PHP" is much easier than "Java".
      </br>"PHP" is much easier than "Java".
      </br>"PHP" is much easier than "Java".
      </br>
</body>
</html>

htmlspecialchars()和htmlentities()函数之间的区别

htmlspecialchars()函数和htmlentities()函数唯一的区别在于htmlspecialchars()函数将特殊字符转换为HTML实体,而htmlentities()函数将所有适用的字符转换为HTML实体。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程