php中自帶函式 json encode

2022-08-30 21:36:18 字數 1732 閱讀 2052

php場景中,需要將陣列轉為json字串,就需要用到php自帶的json_encode函式;

但是當陣列中含有中文字串時,轉出來的結果卻是以下結果:

1

<?php23

$tmparr = array

(4 'name' => '長褲',

5 'color' => 'blue',

6 'size' => 'xl',

7 'title' => '中年** 長褲'8);

910$tmpjson = json_encode($tmparr

);11

12echo

$tmpjson;

輸出:

需要中文不被轉換,只需要給json_encode函式中傳入乙個引數json_unescaped_unicode即可,如下:

1

<?php23

$tmparr = array

(4 'name' => '長褲',

5 'color' => 'blue',

6 'size' => 'xl',

7 'title' => '中年** 長褲'8);

910$tmpjson = json_encode($tmparr,json_unescaped_unicode);

1112

echo

$tmpjson;

輸出:

但是php版本<5.4.0中並不支援以上引數json_unescaped_unicode,可通過以下方式解決

1

$tmparr = array

(2 'name' => '長褲',

3 'color' => 'blue',

4 'size' => 'xl',

5 'title' => '中年** 長褲'6);

78$tmpjson = json_encode($tmparr);9

$tmpjson = preg_replace_callback("#\\\u([0-9a-f])#i",function($matchs

),$tmpjson

);12

13echo

$tmpjson;

輸出:

最後就可以封裝乙個函式(主要是測試環境跟生產環境不同所以封裝乙個函式,可以根據自己的php環境只用一種方式即可):

1

<?php

2$tmparr = array

(3 'name' => '長褲',

4 'color' => 'blue',

5 'size' => 'xl',

6 'title' => '中年** 長褲'7);

89function json_encode_array($array

))#i",function($matchs

),$str

);15

return

$str

;16 }else19}

2021

echo json_encode_array($tmparr);

輸出:

php 自帶加密 解密函式

它的解密函式為 string urldecode string str 將復回原樣 案例 define str moqiang02 sina.com echo md5 加密後的結果為 md5 str md5 加密 echo crypt加密後的結果為 crypt str,str crypt加密 bas...

php自帶加密解密函式

md5 用來計算 md5 哈稀。語法為 string md5 string str crypt 將字串用 unix 的標準加密 des 模組加密。這是單向的加密函式,無法解密。欲比對字串,將已加密的字串的頭二個字元放在 salt 的引數中,再比對加密後的字串。語法為 string crypt str...

php自帶驗證郵箱 url ip函式

以前用php驗證郵箱 url ip是否合法都是通過自己寫正則來實現,但是有時候腦子發昏,可能會寫出乙個不是完全正確的正則,導致驗證出錯,今天發現原來php本身自帶了驗證郵箱 url ip是否合法的函式。主要使用的是filter var函式。語法 filter var variable,filter,...