程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP中我經常容易混淆的三組函數,PHP混淆三組函數

PHP中我經常容易混淆的三組函數,PHP混淆三組函數

編輯:關於PHP編程

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 代替。

$str = "John & 'Adams'";
echo htmlentities($str);
//在浏覽器中輸出:John & 'Adams'
//查看源代碼:John & 'Adams'

     2、htmlspecialchars()

           2.1   把一些預定義的字符轉換為 HTML 實體。預定義字符都是ASCII 實體,即此函數不能轉換ISO 8859-1實體,這是和htmlrntities()的區別

                   預定義的字符是:

  • & (和號) 成為 &
  • ” (雙引號) 成為 "
  • ‘ (單引號) 成為 '
  • < (小於) 成為 &lt;
  • > (大於) 成為 &gt;

          2.2   htmlspecialchars(string,quotestyle,character-set)

          2.3   參數htmlentities()

          2.4   提示:無法被識別的字符集將被忽略,並由 ISO-8859-1 代替。

$str = "John & 'Adams'";
echo htmlentities($str);
//在浏覽器中輸出:John & 'Adams'
//查看源代碼:John &amp; 'Adams'

二、html_entity_decode()和htmlspecialchars_decode()

        html_entity_decode(string,quotestyle,character-set) 函數把 HTML 實體轉換為字符,是htmlentities()的反函數。

        htmlspecialchars_decode(string,quotestyle)函數把預定義的 HTML 實體轉換為字符,是htmlspecialchars()的反函數。

$str = "John &amp; &#039;Adams&#039;";
echo html_entity_decode($str);
//浏覽器輸出:John & 'Adams'
//源代碼:John & &#039;Adams&#039;

三、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() 進行檢測。

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

輸出:

Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
   2、addcslashes(string,characters) 函數在指定的字符前添加反斜槓。stirng必須,第二個可選。規定受 addcslashes() 影響的字符或字符范圍。
             ps:在對 0,r,n 和 t 應用 addcslashes() 時要小心。在 PHP 中,\0,\r,\n 和 \t 是預定義的轉義序列。此函數可以對任何字符,包括預定義字符進行反斜扛添加,這是和addslashes的區別
//向特定字符添加反斜槓
$str = "Hello, my name is John Adams.";
echo $str;
echo addcslashes($str,'m');
echo addcslashes($str,'J');

輸出:

Hello, my name is John Adams.
Hello, \my na\me is John Ada\ms.
Hello, my name is \John Adams.
//向字符串中的一個范圍內的字符添加反斜槓
$str = "Hello, my name is John Adams.";
echo $str;
echo addslashes($str);   //使用addslashes
echo addcslashes($str,'A..Z');
echo addcslashes($str,'a..z');
echo addcslashes($str,'a..h');

輸出:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved