解決php函數json(php常用函數大全)

本文目錄一覽:

如何修復錯誤格式的JSON在PHP

用json_encode()函數對數組進行JSON編碼。

?php

$arr = array (‘a’=1,’b’=2,’c’=3,’d’=4,’e’=5);

echojson_encode($arr);

?

以上例程會輸出:

{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}[1] 

當有中文字符時,當直接使用json_encode() 函數會使漢字不能正常顯示。 所以有了這個適用性比較廣的函數 ch_json_encode() 來解決這個問題。

如何正確運用PHP json_encode函數進行中文轉換?

在 php 中使用 json_encode() 內置函數(php 5.2)可以使用得 php 中數據可以與其它語言很好的傳遞並且使用它。這個函數的功能是將數值轉換成json數據存儲格式,但是轉換後的中文會變成Unicode編碼。

[php] view plaincopyprint?

?php

$arr = array

(

‘Name’=’希亞’,

‘Age’=20

);

$jsonencode = json_encode($arr);

echo $jsonencode;

?

程序運行結果如下:

[php] view plaincopyprint?

{“Name”:null,”Age”:20}

json_encode 函數中中文被編碼成 null 了,Google 了一下,很簡單,為了與前端緊密結合,Json 只支持 utf-8 編碼,我認為是前端的 Javascript 也是 utf-8 的原因。

[php] view plaincopyprint?

?php

$array = array

(

‘title’=iconv(‘gb2312′,’utf-8′,’這裡是中文標題’),

‘body’=’abcd…’

);

echo json_encode($array);

?

這個程序的運行結果為:

[php] view plaincopyprint?

{“title”:”\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898″,”body”:”abcd…”}

數組中所有中文在json_encode之後都不見了或者出現\u2353等。解決方法是用urlencode()函數處理以下,在json_encode之前,把所有數組內所有內容都用urlencode()處理一下,然用json_encode()轉換成json字符串,最後再用urldecode()將編碼過的中文轉回來。

[php] view plaincopyprint?

?php

/**************************************************************

*

* 使用特定function對數組中所有元素做處理

* @param string $array 要處理的字符串

* @param string $function 要執行的函數

* @return boolean $apply_to_keys_also 是否也應用到key上

* @access public

*

*************************************************************/

function arrayRecursive($array, $function, $apply_to_keys_also = false)

{

static $recursive_counter = 0;

if (++$recursive_counter 1000) {

die(‘possible deep recursion attack’);

}

foreach ($array as $key = $value) {

if (is_array($value)) {

arrayRecursive($array[$key], $function, $apply_to_keys_also);

} else {

$array[$key] = $function($value);

}

if ($apply_to_keys_also is_string($key)) {

$new_key = $function($key);

if ($new_key != $key) {

$array[$new_key] = $array[$key];

unset($array[$key]);

}

}

}

$recursive_counter–;

}

/**************************************************************

*

* 將數組轉換為JSON字符串(兼容中文)

* @param array $array 要轉換的數組

* @return string 轉換得到的json字符串

* @access public

*

*************************************************************/

function JSON($array) {

arrayRecursive($array, ‘urlencode’, true);

$json = json_encode($array);

return urldecode($json);

}

$array = array

(

‘Name’=’希亞’,

‘Age’=20

);

echo JSON($array);

?

這次成功了,運行結果如下:

[php] view plaincopyprint?

{“Name”:”希亞”,”Age”:”20″}

如何在PHP中返回Json數據

概述

不對。

返回json用的json_encode()方法沒錯,但是需要在頭部聲明格式。

代碼解析

php返回需要用json_encode()方法來將需要轉換的字符串轉換成json編碼格式(注意:僅僅更換文件內容,而返回的文件依然為文本格式且編碼為gtk)

所以,這裡需要在php頭部聲明

header(‘Content-Type:text/json;charset=utf-8’);

拓展內容

json

JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數據交換格式。它基於 ECMAScript (歐洲計算機協會制定的js規範)的一個子集,採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成為理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。

json通常被作為配置文件,常見還有.ini

如何解決php中json

json_decode()

json_decode

(PHP 5 = 5.2.0, PECL json = 1.2.0)

json_decode — 對 JSON 格式的字符串進行編碼

說明

mixed json_decode ( string $json [, bool $assoc ] )

接受一個 JSON 格式的字符串並且把它轉換為 PHP 變量

參數

json

待解碼的 json string 格式的字符串。

assoc

當該參數為 TRUE 時,將返回 array 而非 object 。

返回值

Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.

2.json_encode()

json_encode

(PHP 5 = 5.2.0, PECL json = 1.2.0)

json_encode — 對變量進行 JSON 編碼

Report a bug 說明

string json_encode ( mixed $value [, int $options = 0 ] )

返回 value 值的 JSON 形式

Report a bug 參數

value

待編碼的 value ,除了resource 類型之外,可以為任何數據類型

該函數只能接受 UTF-8 編碼的數據

options

由以下常量組成的二進制掩碼: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.

Report a bug 返回值

編碼成功則返回一個以 JSON 形式表示的 string 或者在失敗時返回 FALSE 。

Report a bug 更新日誌

版本 說明

5.4.0 options 參數增加常量: JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, 和 JSON_UNESCAPED_UNICODE。

5.3.3 options 參數增加常量:JSON_NUMERIC_CHECK。

5.3.0 增加 options 參數.

原創文章,作者:VYXGT,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/316404.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VYXGT的頭像VYXGT
上一篇 2025-01-09 12:15
下一篇 2025-01-09 12:15

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字符串操作中,capitalize函數常常被用到,這個函數可以使字符串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機打印函數

    單片機打印是指通過串口或並口將一些數據打印到終端設備上。在單片機應用中,打印非常重要。正確的打印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的打印數據可以幫助我們快速…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論