在一般通信过程中,可能会遇到文档文本编码中所不包括很多字符,或者无法在键盘上输入的字符。例如,版权符号(©)、分币符号(¢)和语法重音符号等就属于这种字符。为了克服这些缺点,专门设计了一组统一的按键编码,称为字符实体引用。

1,htmlentities(),将字符串中特殊字符转化为html实体。

string htmlentities(string $str,int $quote_style,int $charset,boolean $double_encode),因为标记中引号有特殊意义,可以通过$quote_style参数来选择如何处理引号,其值:ENT_COMPAT,转换双引号,忽略单引号,这是默认值;ENT_NOQUOTES,忽略双引号和单引号;ENT_QUOTES,转换双引号和单引号。$charset参数确定转换所用字符集,如果忽略charset,默认认为ISO-8859-1。$double_encode会阻止htmlentities()对字符串中已有的HTML实体编码。

如:

<?php
$str = "Bill & 'Steve'";
echo htmlentities($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo htmlentities($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo htmlentities($str, ENT_NOQUOTES); // 不转换任何引号

输出:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

页面源代码是:

Bill &amp; 'Steve'<br>Bill &amp; 'Steve'<br>Bill &amp; 'Steve'

其反函数是html_entity_decode(),html_entity_decode(string $str,int $flags,string $encoding),$flags规定翻译表将包含哪种引号以及翻译表用于哪种文档类型,默认是ENT_COMPAT | ENT_HTML401$encoding一个规定了要使用的字符集的字符串,默认是ISO-8859-1。
如:
<?php
$str = "Bill & 'Steve'";
echo html_entity_decode($str, ENT_COMPAT); // 只转换双引号
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // 转换双引号和单引号
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // 不转换任何引号
输出:
Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve' 页面源代码是:
Bill & 'Steve'<br>Bill & 'Steve'<br>Bill & 'Steve'

2,htmlspecialchars()函数,将字符串中特殊字符转化为html实体。

string htmlspecialchars(string $str,int $quote_style,int $charset,boolean $double_encode),参数与htmlentities()函数中参数类似。

如:

<?php
$str = "This is some <b>bold</b> text";
$str1 = htmlspecialchars($str);
echo $str."<br/>";
echo $str1;

输出:

This is some bold text
This is some <b>bold</b> text

源代码如下:

This is some <b>bold</b> text<br/>This is some &lt;b&gt;bold&lt;/b&gt; text
htmlspecialchars()函数可以转换的字符列表以及最终转换格式如下:
&=>&amp;
"(双引号)=>&quot;
'(单引号)=>'
<=>&lt;
>=>&gt;
注:要防止用户向一个交互式web应用程序中输入HTML标签,这个函数尤为有用。以下例子使用htmlspecialchars()来转换可能有害的字符:
<?php
$input = "I just can't get <<enough>> of PHP!";
echo htmlspecialchars($input);

其反函数是htmlspecialchars_decode(),htmlspecialchars_decode(string $str,int $flag),$flags规定翻译表将包含哪种引号以及翻译表用于哪种文档类型,默认是ENT_COMPAT | ENT_HTML401

如:

<?php
$str = "This is some <b>bold</b> text.";
$str1 = htmlspecialchars_decode($str);
echo $str."<br/>",$str1;

输出:

This is some <b>bold</b> text.
This is some bold text.

源代码:

This is some &lt;b&gt;bold&lt;/b&gt; text.<br/>This is some <b>bold</b> text.

3,strip_tags()函数,从字符串中移除空字符,HTML和PHP标记,将html转化为纯文本。

string strip_tags(string $str,string $allowable_tags) 

$str,待处理字符串,$allowable_tags指定不被去除的字符列表。

如:

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>' ;
echo strip_tags ( $text );
echo "\n" ; // 允许 <p> 和 <a>
echo strip_tags ( $text , '<p><a>' );

输出:

4,get_html_translation_table()函数,返回使用htmlspecialchars()和htmlentities()后的转换表。

array get_html_translation_table(int $table,int $flags,string $encoding),$table表示想要的表,分别是HTML_ENTITIES,HTML_SPECIALCHARS。$flags规定翻译表将包含哪种引号以及翻译表用于哪种文档类型,默认是ENT_COMPAT | ENT_HTML401$encoding一个规定了要使用的字符集的字符串,默认是ISO-8859-1。

如:

<?php
var_dump ( get_html_translation_table ( HTML_ENTITIES , ENT_QUOTES | ENT_HTML5 ));

输出:

5,阿萨德

PHP中字符串与html相互转化函数的更多相关文章

  1. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  2. c语言中字符串转数字的函数

    ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...

  3. js中字符串和数组相互转化的方法

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #e4af0a } p. ...

  4. JavaScript中字符串处理的一些函数

    废话,不多说,直接上代码 <script type="text/javascript"> (function(){ var methods = { camelize: ...

  5. Python中的列表,元组,字符串之间的相互转化

    Python中的列表元组和字符串之间的相互转化需要利用,tuple(),list(),str(). 示例如下: >>> the_string = "hello I'am x ...

  6. PHP去掉转义后字符串中的反斜杠\函数stripslashes

    addslashes函数主要是在字符串中添加反斜杠对特殊字符进行转义,stripslashes则是去掉转义后字符串中的反斜杠\,比如当你提交一段 json数据到PHP端的时候可能会遇到json字符串中 ...

  7. (转载)PHP去掉转义后字符串中的反斜杠\函数stripslashes

    (转载)http://www.beijibear.com/index.php?aid=182 addslashes()函数主要是在字符串中添加反斜杠对特殊字符进行转义,stripslashes()则是 ...

  8. c/c++中与字符串处理相关的函数

    void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...

  9. JAVA中字符串函数subString的用法小结

    本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int begi ...

随机推荐

  1. python+appium-desktop:安卓(android)7.0以上使用appium无法定位元素(无法refresh)且 无法运行脚本

    --解决方法: 启动appium时配置中添加: "automationName":"uiautomator2" --扩展: 想支持安卓7.0及以上版本需要满足一 ...

  2. Python程序互斥体

    Python程序互斥体   有时候我们需要程序只运行一个实例,在windows平台下我们可以很简单的用mutex实现这个目的.   在开始时,程序创建了一个命名的mutex,这个mutex可以被其他进 ...

  3. springboot @Value获取值为空,解决办法

    在spring中,常常使用 @Value("${property}") 从application.properties中取值,需要注意两点 使用 @Value 的类不能使用 new ...

  4. docker-compose学习

    该实践是在已经安装了docker的基础上,如果还未安装docker,请先安装docker : https://www.cnblogs.com/theRhyme/p/9813019.html docke ...

  5. Spring使用Jackson处理json数据

    1.搭建SpringMVC+Spring环境 2.配置web.xml.SpringMVC-config.xml <?xml version="1.0" encoding=&q ...

  6. MyBatis :Insert (返回主键、批量插入)

    一.前言    数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅. 二.insert元素 属性详解   其属性如下: parameterType , ...

  7. 高级编程T-SQL函数

    --字符串函数--1.LEN:返回一个字符串的字符数select LEN('中国'),LEN('abc123!')select LEN('abc '+'1'),LEN(' abc')--2.DataL ...

  8. centos6 下erlang安装

    https://packages.erlang-solutions.com/erlang/

  9. mysql解压缩版安装方法以及mysql无法启动1067错误

    https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html我下载的版本号是5.6.421.解压到C:\Program Files\M ...

  10. 201621123002《JAVA程序设计》第一周学习总结

    1.本周学习总结 1.下载并安装JDK,设定path变量 Java SE Downloads 2.了解JD与JRE的区别与联系 3.下载eclipse并完成实现简单程序 Downloads 4.使用命 ...