php web請求安全處理

來源:互聯網
上載者:User
1、urlencode和rawurlencode的區別

<?php test('https://tieba.baidu.com/f?kw=2&fr=wwwt');test(':/?= &#');test('測試');function test($s){    echo "<b>urlencode('$s')</b> = [<b>";    var_dump(urlencode($s));    echo "</b>]<br/>";    echo "<b>rawurlencode('$s')</b> = [<b>";    var_dump(rawurlencode($s));    echo "</b>]<br/>";}//運行結果urlencode('https://tieba.baidu.com/f?kw=2&fr=wwwt') = [D:\software\wamp\www\linux\webApi\test.php:9:string 'https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt' (length=54)]rawurlencode('https://tieba.baidu.com/f?kw=2&fr=wwwt') = [D:\software\wamp\www\linux\webApi\test.php:12:string 'https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt' (length=54)]urlencode(':/?= &#') = [D:\software\wamp\www\linux\webApi\test.php:9:string '%3A%2F%3F%3D+%26%23' (length=19)]rawurlencode(':/?= &#') = [D:\software\wamp\www\linux\webApi\test.php:12:string '%3A%2F%3F%3D%20%26%23' (length=21)]urlencode('測試') = [D:\software\wamp\www\linux\webApi\test.php:9:string '%E6%B5%8B%E8%AF%95' (length=18)]rawurlencode('測試') = [D:\software\wamp\www\linux\webApi\test.php:12:string '%E6%B5%8B%E8%AF%95' (length=18)]

從上面的執行結果可以看出,urlencode和rawurlencode兩個方法在處理字母數字,特殊符號,中文的時候結果都是一樣的,唯一的不同是對空格的處理,urlencode處理成“+”,rawurlencode處理成“%20”

2、函數strip_tags:去掉 HTML 及 PHP 的標記

注意:本函數可去掉字串中包含的任何 HTML 及 PHP 的標記字串。若是字串的 HTML 及 PHP 標籤原來就有錯,例如少了大於的符號,則也會傳回錯誤。而本函數和 fgetss() 有著相同的功能。fgetss是從檔案中讀取檔案,並去掉html和php標記。

<?phpecho strip_tags("Hello <b>world!</b>");

運行結果

Hello world!

3、函數htmlspecialchars, 將特殊字元轉成 HTML 格式

htmlspecialchars() 函數把預定義的字元轉換為 HTML 實體。
預定義的字元是:
& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小於)成為 <
> (大於)成為 >

<?phpecho htmlspecialchars("This is some <b>bold</b> text.&");

運行結果

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

4、函數htmlentities,將所有的字元都轉成 HTML 字串

或許你還在遺憾htmlspecialchars只能處理4個html標記,那麼現在你不要遺憾了,htmlentities是轉化全部字元。

<?phpecho htmlentities("<? W3S?h????>");

運行結果

<? W3S?h????>

5、addslashes,函數返回在預定義字元之前添加反斜線的字串。

預定義字元是:
單引號(')
雙引號(")
反斜線(\)
NULL

<?phpecho addslashes('Shanghai is the "biggest" city in China.');

運行結果

Shanghai is the \"biggest\" city in China.

6、stripslashes是還原addslashes引用的字串。

<?phpecho stripslashes("Who\'s Bill Gates?");

運行結果

Who's Bill Gates?

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.