好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中htmlspecialchars,htmlentities用法 - php函数

php中htmlspecialchars,htmlentities用法

在php中htmlspecialchars,将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍.

htmlentities用法,代码如下:

<html>  <body>  <?php  $str  =  "John & 'Adams'" ;  echo  htmlentities( $str , ENT_COMPAT);  echo   "<br />" ;  echo  htmlentities( $str , ENT_QUOTES);  //开源软件:phpfensi.com   echo   "<br />" ;  echo  htmlentities( $str , ENT_NOQUOTES);  ?>  </body>  </html>  //浏览器输出:   John &  'Adams'   John &  'Adams'   John &  'Adams'   //htmlspecialchars用法   & (和) 转成 &amp;   " (双引号) 转成 &quot;   < (小于) 转成 &lt;   > (大于) 转成 &gt; 

例,代码如下:

<html>  <body>  <?php  $str  =  "John & 'Adams'" ;  echo  htmlspecialchars( $str , ENT_COMPAT);  echo   "<br />" ;  echo  htmlspecialchars( $str , ENT_QUOTES);  echo   "<br />" ;  echo  htmlspecialchars( $str , ENT_NOQUOTES);  ?>  </body>  </html> 

他们的区别:

这两个函数的功能都是转换字符为HTML字符编码,特别是url和代码字符串,防止字符标记被浏览器执行,使用中文时没什么区别,但htmlentities会格式化中文字符使得中文输入是乱码.

htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " < 和 > 这几个特殊符号,代码如下:

$str  =  '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>' ;  echo   'htmlentities指定GB2312编码:' .htmlentities( $str ,ENT_COMPAT, "GB2312" ). '' ;  echo   'htmlentities未指定编码:' .htmlentities( $str ). '' ;  $str  =  '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>' ;  echo  htmlspecialchars( $str ). '' ; 

效果,代码如下:

htmlentities指定GB2312编码:<a href="demo.php?m=index&a=index&name=中文">测试页面</a>

htmlentities未指定编码:<a href="demo.php?m=index&a=index&name=ÖÐÎÄ">²âÊÔÒ³Ãæ</a>

<a href="demo.php?m=index&a=index&name=中文">测试页面</a>

查看更多关于php中htmlspecialchars,htmlentities用法 - php函数的详细内容...

  阅读:45次