Table of Contents
PHP中我经常容易混淆的三组函数,PHP混淆三组函数
Home Backend Development PHP Tutorial There are three groups of functions that I often confuse in PHP. PHP confuses three groups of functions_PHP Tutorial

There are three groups of functions that I often confuse in PHP. PHP confuses three groups of functions_PHP Tutorial

Jul 13, 2016 am 10:13 AM
http php function Confuse of

PHP中我经常容易混淆的三组函数,PHP混淆三组函数

原文:http://www.ido321.com/1252.html

一、htmlentities() 和htmlspecialchars()

       1、htmlentities()

             1.1  功能:把字符转换为 HTML 实体。字符包括ASCII实体和ISO 8859-1实体(HTML实体对照表:http://www.w3school.com.cn/tags/html_ref_entities.html)

             1.2  语法:htmlentities(string,quotestyle,character-set)

             1.3  参数:string是必选参数,是需要转换的字符串。其余可选,quotestyle规定如何编码单引号和双引号:ENT_COMPAT – 默认。仅编码双引号;ENT_QUOTES – 编码双引号和单引号;ENT_NOQUOTES – 不编码任何引号。character-set是规定转换用的字符集,常用的有UTF-8/GB-2312/ISO-8859-1(默认)。

             1.4  提示:无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。

<span>$str = <span>"John &amp; 'Adams'"</span>;
<span>echo</span> htmlentities($str);
<span>//在浏览器中输出:John &amp; 'Adams'</span>
//查看源代码:John &amp;amp; <span>'Adams'</span></span>
Copy after login
Copy after login

2、htmlspecialchars()

2.1 把一些预定义的字符转换为 HTML 实体。预定义字符都是ASCII 实体,即此函数不能转换ISO 8859-1实体,这是和htmlrntities()的区别

预定义的字符是:

  • & (和号) 成为 &amp;
  • ” (双引号) 成为 &quot;
  • ‘ (单引号) 成为 &#039;
  • < (小于) 成为 &lt;
  • > (大于) 成为 &gt;

2.2 htmlspecialchars(string,quotestyle,character-set)

2.3 参数htmlentities()

2.4 提示:无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。

<span>$str = <span>"John &amp; 'Adams'"</span>;
<span>echo</span> htmlentities($str);
<span>//在浏览器中输出:John &amp; 'Adams'</span>
//查看源代码:John &amp;amp; <span>'Adams'</span></span>
Copy after login
Copy after login

二、html_entity_decode()和htmlspecialchars_decode()

html_entity_decode(string,quotestyle,character-set) 函数把 HTML 实体转换为字符,是htmlentities()的反函数。

htmlspecialchars_decode(string,quotestyle)函数把预定义的 HTML 实体转换为字符,是htmlspecialchars()的反函数。

<span>$str = <span>"John &amp;amp; &amp;#039;Adams&amp;#039;"</span>;
<span>echo</span> html_entity_decode($str);
<span>//浏览器输出:John &amp; 'Adams'</span>
//源代码:John &amp; &amp;#039;Adams&amp;#039;</span>
Copy after login

三、addslashes()和addcslashes()

1、addslashes(string):在指定的预定义字符前添加反斜杠。string是需要检查的字符串。该函数数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。

预定义字符是:单引号(’)、双引号(”)、反斜扛(\)和NULL

ps:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

<span>$str = <span>"Who's John Adams?"</span>;
<span>echo</span> $str . <span>" This is not safe in a database query.&lt;br /&gt;"</span>;
<span>echo</span> addslashes($str) . <span>" This is safe in a database query."</span>;</span>
Copy after login

输出:

<span>Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.</span>
Copy after login
<span>   <span>2、addcslashes(</span><em>string</em>,<em>characters</em><span>) 函数在<span>指定的字符</span>前添加反斜杠。stirng必须,第二个可选。规定受 addcslashes() 影响的字符或字符范围。</span></span>
Copy after login
<span>             ps:<strong>在对 0,r,n 和 t 应用 addcslashes() 时要小心。在 PHP 中,\0,\r,\n 和 \t 是预定义的转义序列。此函数可以对任何字符,包括预定义字符进行反斜扛添加,这是和addslashes的区别</strong></span>
Copy after login
<span>//向特定字符添加反斜杠</span><span>
$str = <span>"Hello, my name is John Adams."</span>;
<span>echo</span> $str;
<span>echo</span> addcslashes($str,<span>'m'</span>);
<span>echo</span> addcslashes($str,<span>'J'</span>);</span>
Copy after login

输出:

<span>Hello, my name is John Adams.
Hello, \my na\me is John Ada\ms.
Hello, my name is \John Adams.</span>
Copy after login
<span>//向字符串中的一个范围内的字符添加反斜杠</span><span>
$str = <span>"Hello, my name is John Adams."</span>;
<span>echo</span> $str;
<span>echo</span> addslashes($str);   <span>//使用addslashes</span>
<span>echo</span> addcslashes($str,<span>'A..Z'</span>);
<span>echo</span> addcslashes($str,<span>'a..z'</span>);
<span>echo</span> addcslashes($str,<span>'a..h'</span>);</span>
Copy after login

输出:

Hello, my name is John Adams.

Hello, my name is John Adams.

\Hello, my name is \John \Adams.

H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.

H\ello, my n\am\e is Jo\hn A\d\ams.

下一篇:Ubuntu下安装XAMPP

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/916818.htmlTechArticleThree groups of functions that I often confuse in PHP. PHP confuses three groups of functions. Original text: http://www. ido321.com/1252.html 1. htmlentities() and htmlspecialchars() 1. htmlentities() 1.1 Function:...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

CakePHP Date and Time

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

CakePHP Project Configuration

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

CakePHP File upload

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

CakePHP Routing

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

Discuss CakePHP

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

How To Set Up Visual Studio Code (VS Code) for PHP Development

CakePHP Quick Guide CakePHP Quick Guide Sep 10, 2024 pm 05:27 PM

CakePHP Quick Guide

See all articles