Position actuelle: Accueil> Derniers articles> Comment utiliser MB_GET_INFO avec MB_HTTP_INPUT pour obtenir l'encodage dans la demande HTTP

Comment utiliser MB_GET_INFO avec MB_HTTP_INPUT pour obtenir l'encodage dans la demande HTTP

gitbox 2025-05-29

Dans le développement de PHP, lorsque nous traitons des chaînes multi-gobets, nous utilisons souvent des extensions MBSTring pour garantir l'exactitude de l'encodage des caractères, en particulier lors du traitement des sites Web multilingues ou du traitement des données de différents clients. Pour gérer correctement l'encodage des caractères dans les demandes, MB_HTTP_INPUT () et MB_GET_INFO () sont des outils très pratiques.

Cet article expliquera en détail comment obtenir des codages de caractère dans les demandes HTTP à travers ces deux fonctions et expliquer leurs utilisations et leurs différences.

1. MB_HTTP_INPUT - Obtenez le codage des caractères de l'entrée HTTP

La fonction MB_HTTP_INPUT () peut être utilisée pour détecter le codage des caractères de l'entrée HTTP. Les types d'entrée qu'il peut détecter comprennent:

  • 'G' : Obtenez des données

  • 'P' : Post Data

  • 'C' : données de cookies

  • «S» : entrée de chaîne (tout)

  • 'I' : détection automatique (priorité: post> obtenir> cookie)

Exemple de code:

 <?php
// Test POST Encodage de données de données
$post_encoding = mb_http_input('P');

if ($post_encoding) {
    echo "POST Le codage de caractère demandé est: {$post_encoding}\n";
} else {
    echo "未能Test到 POST Encodage demandé\n";
}
?>

Si vous soumettez des données sous un formulaire, par exemple:

 <form method="post" action="https://gitbox.net/submit.php">
  <input type="text" name="username">
  <input type="submit" value="soumettre">
</form>

Le script PHP ci-dessus peut détecter le codage utilisé par vos données de poste soumises (telles que UTF-8 ou EUC-JP).

2. MB_GET_INFO - Obtenez des informations de configuration de MbString

MB_GET_INFO () est une fonction de diagnostic multifonctionnelle qui peut renvoyer les informations de configuration actuelles de la MBSTring . Si aucun paramètre n'est passé pendant l'appel, toutes les informations seront retournées; Vous pouvez également transmettre un nom de projet spécifique pour interroger un certain paramètre, tel que "http_input" .

Exemple de code:

 <?php
// Faire tout mbstring information
$mb_info = mb_get_info();
echo "Actuel HTTP Le code d&#39;entrée est défini sur: " . $mb_info['http_input'] . "\n";

// Ou tout simplement http_input partie
$http_input = mb_get_info("http_input");
echo "HTTP Entrez les paramètres d&#39;encodage: {$http_input}\n";
?>

Remarque: MB_GET_INFO ("http_input") Renvoie les paramètres de codage d'entrée par défaut de MBSTring (tels que Auto , UTF-8 , etc.), plutôt que le codage de données de demande réel. Par conséquent, mb_http_input () est le premier choix pour vérifier "quel codage est utilisé dans la demande réelle".

3. La combinaison de deux fonctions

Si vous souhaitez vous assurer que le serveur peut recevoir et traiter correctement les données de demande au client, ce qui suit est une méthode d'application pratique:

 <?php
// Définir le codage des caractères par défaut
mb_internal_encoding("UTF-8");
mb_http_input("auto");

// Obtenir POST Le codage de caractère réel demandé
$actual_encoding = mb_http_input('P');

// Obtenir mbstring Actuel HTTP Entrer les paramètres
$configured_encoding = mb_get_info("http_input");

echo "Le code de demande réel est: {$actual_encoding}\n";
echo "mbstring Configuré HTTP Entrer les paramètres为: {$configured_encoding}\n";
?>

Ce code aide les développeurs à dépanner les caractères bruits: si le codage envoyé par le client ne correspond pas à la configuration du serveur ou que le paramètre MBSTring ne parvient pas à remplacer le comportement par défaut.

4. Résumé

  • Utilisez MB_HTTP_INPUT () pour obtenir le codage des caractères réellement utilisé dans la demande.

  • Utilisez MB_GET_INFO () pour obtenir la configuration actuelle de MbString , y compris le codage d'entrée HTTP par défaut.

  • La combinaison des deux permet une compréhension et un débogage plus complet des problèmes de codage, garantissant que l'application peut gérer correctement la saisie des utilisateurs.

Il est recommandé que la MBSTring soit toujours activée et correctement configurée lors du traitement des sites Web multilingues ou des données de formulaire international, et vérifiez régulièrement si le comportement du serveur correspond aux données du client via les méthodes ci-dessus.

Déboguez-vous le problème du code de caractère brouillé ou développez-vous des applications impliquant différents locaux?