PHP中讓json_encode不自動轉義斜槓“/”的方法

最近將使用爬蟲爬取的鏈接保存到 mysql 數據庫中時,發現我將鏈接使用 json_encode 保存時候,在數據庫中卻顯示了轉義字符,我並不需要這轉義的,看起來不清晰而且佔用存儲空間。

後來發現在默認的情況之下使用 json_encode 對數組進行 json 格式的轉換時候會自動的將數據中含有斜槓的字符串進行轉義,但是我們往往有的時候不需要藥對它們進行轉義的,本文說說如何使用 json_encode 不自動轉義斜槓。

對於如下數組 $a,現有兩種辦法解決:

1

2

3

4

5

6

7

$a = array(

 'http://www.baidu.com',

 'http://www.baidu.com',

 'http://www.baidu.com',

 'http://www.baidu.com',

 'http://www.baidu.com'

);

其一,正則替換:

1

2

$a = str_replace("\\/", "/", json_encode($a));

var_dump($a);

其二,若 php 版本是 5.4 及以上的話:

var_dump(json_encode($a,JSON_UNESCAPED_SLASHES));

 

另外,如果不希望中文被轉義成unicode,可以用JSON_UNESCAPED_UNICODE選項,支持多選項:

json_encode($a, JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE),詳情參考:https://blog.csdn.net/z15818264727/article/details/81076312

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章