欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP中addcslashes與stripcslashes函數(shù)用法分析

 更新時(shí)間:2016年01月07日 12:07:13   作者:admin  
這篇文章主要介紹了PHP中addcslashes與stripcslashes函數(shù)用法,結(jié)合實(shí)例形式分析了addcslashes函數(shù)添加針對(duì)固定字符的轉(zhuǎn)義處理與stripcslashes進(jìn)行還原操作相關(guān)技巧,需要的朋友可以參考下

本文實(shí)例分析了PHP中addcslashes與stripcslashes函數(shù)用法。分享給大家供大家參考,具體如下:

在寫一個(gè)網(wǎng)站的英文版時(shí),寫完后填加英文資料,我隨便填寫時(shí)一點(diǎn)問題沒有,但每當(dāng)填加指定的內(nèi)容時(shí)卻填加不上,也不報(bào)錯(cuò),我查看了數(shù)據(jù)庫(kù),發(fā)現(xiàn)這個(gè)字段用的是“TEXT”數(shù)據(jù)數(shù)型,我以為是內(nèi)容過長(zhǎng)的原因,于是我把數(shù)據(jù)類型改成了“l(fā)ongtext”,但提交時(shí)發(fā)現(xiàn)還是出現(xiàn)同樣的問題。下面我們給大家介紹一下addcslashes函數(shù)吧!

后來(lái)請(qǐng)教同事,同事發(fā)現(xiàn)在是英文中帶標(biāo)點(diǎn)“'”的原因,MySQL執(zhí)行到此處后自動(dòng)認(rèn)為語(yǔ)句結(jié)束,所以才填加不上。既然找出來(lái)了問題那就得找出對(duì)應(yīng)的解決方法,那就是在文本內(nèi)容中的“'”前全部加上轉(zhuǎn)義字符“\”,正好PHP中提供了自動(dòng)在字符串中加入或去除轉(zhuǎn)義字符的函數(shù)addcslashes和stripcslashes,于是加上測(cè)試后,果然問題解決!由此可見,我平日寫程序時(shí)不夠嚴(yán)禁,總是會(huì)忽略這樣那樣的細(xì)節(jié)問題,如果被HACKER發(fā)現(xiàn)這些問題加一利用,網(wǎng)站基本就OVER了,所以大家一定要引以為戒,不要和我犯同樣的錯(cuò)誤哦。

下面簡(jiǎn)單介紹這兩個(gè)函數(shù)的用法:

string addcslashes(string str,string charlist)

第1個(gè)參數(shù)str為待失物原始字符串

第2個(gè)參數(shù)charlist說(shuō)明需要在原始串的哪些字符前加上字符 “\”。

string stripcslashes(string str)

去掉字符串中的“\”。

另外,使用addslashes函數(shù)也可直接針對(duì)“'”進(jìn)行轉(zhuǎn)義處理。

示例如下:

<?php
$sql = "update book set bookname='let's go' where bookid=1";
 echo $sql."<br/>";
 $new_sql = addcslashes($sql,"'");
 echo $new_sql."<br/>";
 $new_sql_01 = stripcslashes($new_sql);
 echo $new_sql_01."<br/>";
 echo addslashes($sql);
?>

運(yùn)行結(jié)果如下:

update book set bookname='let's go' where bookid=1
update book set bookname=\'let\'s go\' where bookid=1
update book set bookname='let's go' where bookid=1
update book set bookname=\'let\'s go\' where bookid=1

希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論