Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Erklärung der Funktion json_encode() in PHP

Detaillierte Erklärung der Funktion json_encode() in PHP

黄舟
Freigeben: 2023-03-17 14:54:01
Original
7027 Leute haben es durchsucht

Ich glaube, jeder weiß, dass die Funktion json_encode() in PHP eine eingebaute Funktion ist, die nur in Versionen über PHP5.2 verwendet werden kann. Die Funktion json_encode() verwendet die Daten in PHP um es gut in andere Sprachen integrieren zu können. Heute stellen wir Ihnen die Funktion son_encode() in PHP vor!

Die Funktion dieser Funktion besteht darin, numerische Werte in das JSON-Datenspeicherformat zu konvertieren.

<?php
$arr = array
       (
          &#39;Name&#39;=>&#39;希亚&#39;,
          &#39;Age&#39;=>20
       );

$jsonencode = json_encode($arr);
echo $jsonencode;
?>
Nach dem Login kopieren

Die Ergebnisse der Ausführung des Programms sind wie folgt:

{"Name":null,"Age":20}
Nach dem Login kopieren

Das Chinesisch in der json_encode-Funktion ist als null codiert und es ist sehr einfach Um eine enge Integration mit dem Frontend zu gewährleisten, unterstützt Json nur die utf-8-Codierung. Ich denke, dass das Frontend Javascript auch der Grund für utf-8 ist.

<?php
$array = array
	(
	 	&#39;title&#39;=>iconv(&#39;gb2312&#39;,&#39;utf-8&#39;,&#39;这里是中文标题&#39;),
		&#39;body&#39;=>&#39;abcd...&#39;
	);

echo json_encode($array);
?>
Nach dem Login kopieren

Das laufende Ergebnis dieses Programms ist:

{"title":"\u8fd9\u91cc\u662f\u4e2d\u6587\u6807\u9898","body":"abcd..."}
Nach dem Login kopieren

Alle chinesischen Zeichen im Array fehlen oder u2353 usw. erscheinen nach json_encode.

Die Lösung besteht darin, die Funktion urlencode() zu verwenden, um Folgendes vor json_encode zu verarbeiten: Verwenden Sie urlencode(), um den gesamten Inhalt aller Arrays zu verarbeiten, und konvertieren Sie ihn dann mit json_encode() in einen JSONstring und verwenden Sie schließlich urldecode(), um das codierte Chinesisch zurück zu konvertieren.

<?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(&#39;possible deep recursion attack&#39;);
    }
    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, &#39;urlencode&#39;, true);
	$json = json_encode($array);
	return urldecode($json);
}

$array = array
       (
          &#39;Name&#39;=>&#39;希亚&#39;,
          &#39;Age&#39;=>20
       );


echo JSON($array);
?>
Nach dem Login kopieren

Diesmal war es erfolgreich:

{"Name":"希亚","Age":"20"}
Nach dem Login kopieren

Zusammenfassung:

Ich glaube, dass jeder bestehen wird. Durch das Studium von Textbeispielen habe ich ein besseres Verständnis für die Funktion json_encode() in PHP erhalten. Ich hoffe, dass es für Ihre Arbeit hilfreich sein wird!

Verwandte Empfehlungen:

php json_encode() gibt kein Chinesisch aus

Detaillierte Erläuterung der PHP-Funktion json_encode() und des chinesischen verstümmelten Problems

Einführung in die PHP-Funktion json_encode()

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Funktion json_encode() in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage