“優(yōu)秀”的程序員是處理字符集的高手-----基于php淺談字符集的處理(一)

題記:有人說(shuō)php是前端語(yǔ)言,對(duì)~~說(shuō)的一點(diǎn)不錯(cuò),php的確可以寫前端。但是php神就神在它也可以連接數(shù)據(jù)庫(kù),那么也就意味著它可以處理表。那么我們也可以認(rèn)為php是后臺(tái)語(yǔ)言,它能寫出一個(gè)很完美的server。同樣的很多人認(rèn)為java是后臺(tái)語(yǔ)言,沒錯(cuò),java強(qiáng)大的類庫(kù),強(qiáng)大的社區(qū)提供各種各樣的開源包。但是Android基本都是java寫的呀,所以~~~~

如果說(shuō)測(cè)試員絕大多數(shù)時(shí)間是在寫測(cè)試用例和執(zhí)行測(cè)試用例的話,那么后臺(tái)絕大多數(shù)時(shí)間做的就是寫接口和處理字符集(ps:處理bug這個(gè)梗就不多說(shuō)了)。寫這篇文章的目的主要是為了幫助和我一樣的初學(xué)者對(duì)php處理字符集有更深刻的了解,也是為了幫助那些正在努力著的測(cè)試員,我們一起用測(cè)試員的角度來(lái)揭開那些“搬磚工”們每天都在干什么。話不多說(shuō),讓我們進(jìn)入正題

如圖1所示:如果你是php初學(xué)者請(qǐng)務(wù)必理解圖中操作步驟,如果你是測(cè)試員,那么可以不需要理解每句都是具體含義,紅色字體部分,我已經(jīng)做了詳細(xì)說(shuō)明,1->配置數(shù)據(jù)庫(kù)信息連接上數(shù)據(jù)庫(kù)->2.為了防止輸入的中文是亂碼set utf8一下->3.為了防止sql注入我們選擇用prepare來(lái)處理sql命令->4.用execut來(lái)處理sql 并賦值到一個(gè)容器中,因?yàn)槲覀円獙?duì)這個(gè)數(shù)據(jù)做進(jìn)一步處理->5.使用fetchall處理剛剛那個(gè)容器,獲得我們想要的數(shù)據(jù)->6.此時(shí)的二維數(shù)組賊難看,數(shù)據(jù)包著數(shù)據(jù),我們需要做進(jìn)一步處理這里我們選擇foreach強(qiáng)序遍歷。(說(shuō)白了就是一層一層的剝殼)

圖一

如下圖2所示,我們返回的絕大數(shù)情況下都是二維數(shù)組,遇到那些寫的sql跟狗屎一樣的程序的話,那就更難剝,所以寫sql的時(shí)候最好精準(zhǔn)定位,查兩條數(shù)據(jù),我們絕對(duì)的不返回三條數(shù)據(jù),這樣的話處理數(shù)組就會(huì)方便很多


圖二

如圖3所示返回的結(jié)果是二維數(shù)組,可是我只需要一個(gè)key為id value為name的一維數(shù)組。那我們?cè)撛趺崔k呢?遇到這種問(wèn)題想都不用想,直接foreach!

定義一個(gè)空的數(shù)組容器$a=[];

foreac $數(shù)組名($數(shù)組名 as $k=>$v){

$a[]=$v[‘name’];//遍歷出了所有的$v,把所有name的值賦給空數(shù)組

}

//效果$a = ['張三', '李四', '王五', '李雷', '韓梅梅'];


圖三

那么我們想做一個(gè)指定k的操作又該怎么辦呢?

foreach ($arr as $k => $v) {

? $arr2[$v['id']] = $v;//$v['id']我們把id獲取到以后,把它定義到新的數(shù)組里面就可以了

}

下一篇我將結(jié)束前后端數(shù)據(jù)的交互。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容