Maison > développement back-end > Problème PHP > Comment résoudre le problème php ajax tronqué

Comment résoudre le problème php ajax tronqué

藏色散人
Libérer: 2023-03-10 08:10:02
original
1509 Les gens l'ont consulté

Solution au code tronqué php ajax : 1. Utilisez l'encodage UTF-8 pour toutes les données ; 2. Utilisez les deux fonctions "JSON" et "arrayRecursive" pour encoder chaque caractère séparément.

Comment résoudre le problème php ajax tronqué

L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3

php ajax chinois tronqué problème

En php, après avoir extrait les données de la base de données, nous extrayons généralement plusieurs lignes de données à la fois. Si le js front-end utilise ajax pour interagir avec le back-end, php ne peut que faire écho. une donnée, mais notre Il y a plusieurs données, donc un seul tableau peut être utilisé. Cela utilise la fonction json_encode() pour convertir les données en données json.

Voyons comment convertir un tableau

php :

Nous créons d'abord deux tableaux en php, l'un contient du chinois, l'autre contient des chiffres ou de l'anglais, et enfin les sorties Jetez un oeil. Idée : Les valeurs associées sont plus intuitives

$gg=array('a'=>'中国','b'=>'日本','c'=>'美国','d'=>'加拿大','e'=>'法国');
$yy=array('f'=>'6','g'=>'7','h'>='8','i'=>'tom','j'=>'kevin');
Copier après la connexion

Ne sortir qu'un des tableaux :

echo $json=json_encode($gg);
Copier après la connexion

Le résultat de sortie est le suivant

{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"}
Copier après la connexion

Il y a des accolades sur les deux côtés, et les caractères sont tronqués

Mettez deux tableaux dans un seul tableau et affichez-les en même temps

echo $json=json_encode(array($gg,$yy));
Copier après la connexion

Le résultat de sortie est le suivant :

[{"a":"\u4e2d\u56fd","b":"\u65e5\u672c","c":"\u7f8e\u56fd","d":"\u52a0\u62ff\u5927","e":"\u6cd5\u56fd"},{"f":"6","g":"7","0":true,"i":"tom","j":"kevin"}]
Copier après la connexion

Nous pouvons voir qu'une fois le tableau du tableau formaté en json, les données sont installées dans [] Entre parenthèses, les tableaux à l'intérieur sont entre accolades {}, mais ils sont toujours tronqués.

Pour résoudre le problème des caractères tronqués, il existe deux méthodes,

Méthode 1 : toutes les données sont codées uniformément en UTF-8, y compris l'encodage à partir de la base de données, l'encodage PHP et l'encodage frontal. .

Méthode 2 : utilisez les deux fonctions suivantes pour encoder chaque caractère séparément : (Certains symboles semblent s'échapper sans succès, cette méthode n'est donc pas recommandée)

function JSON($array) { 
    arrayRecursive($array, 'urlencode', true); 
    $json = json_encode($array); 
    return urldecode($json); 
}
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--; 
}
Copier après la connexion

>
Après avoir utilisé ces deux fonctions, le résultat de sortie est :

[{"a":"中国","b":"日本","c":"美国","d":"加拿大","e":"法国"},{"f":"6","g":"7","0":"1","i":"tom","j":"kevin"}]
Copier après la connexion

Apprentissage recommandé : "

Tutoriel vidéo PHP

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal