Position actuelle: Accueil> Derniers articles> Comment convertir une chaîne au format hexadécimal à l'aide de la fonction Pack () en php?

Comment convertir une chaîne au format hexadécimal à l'aide de la fonction Pack () en php?

M66 2025-06-15

Dans la programmation PHP, nous devons parfois convertir les chaînes en format hexadécimal pour le traitement des données sous-jacent, la transmission du réseau ou l'interaction avec les appareils matériels. PHP fournit une fonction de pack () puissante qui peut nous aider à implémenter cette fonction facilement.

Cet article présentera comment utiliser la fonction Pack () pour convertir une chaîne au format hexadécimal et démontrer son utilisation en combinaison avec des exemples.

1. Quelle est la fonction Pack ()?

La fonction Pack () est utilisée pour emballer les données en chaînes binaires. Il convertit les paramètres en forme binaire à retourner en fonction du format spécifié et est souvent utilisé pour générer des packages de protocole binaire, une écriture de données de fichiers et d'autres scénarios.

Prototype de fonction:

 string pack(string $format, mixed $args, mixed ...$args)
  • $ format est une chaîne de format qui spécifie comment les données sont emballées.

  • $ args est les données à emballer et peut être multiple.

2. Le principe de la corde à hexadécimal

Bien que Pack () soit principalement utilisé pour emballer les données, il peut facilement implémenter la conversion de la chaîne en hexadécimal avec unback () ou bin2hex () .

L'idée simple est:

  • Utilisez directement Bin2Hex () pour convertir la chaîne en hexadécimal;

  • Ou utilisez Pack () pour emballer la chaîne dans un format spécifique, puis utilisez BIN2HEX () pour le sortir.

3. Utilisez Pack () pour implémenter la chaîne en hexadécimal

Le caractère de format h * de pack () signifie le codage sous forme de chaîne hexadécimale, c'est-à-dire convertissant la chaîne hexadécimale en données binaires.

Mais si vous avez déjà des chaînes qui souhaitent être converties en hexadécimal, vous pouvez d'abord utiliser pack () et déballer () , et vous pouvez obtenir des effets similaires.

Voici un exemple montrant comment convertir une chaîne en hexadécimal à l'aide de pack () et bin2hex () :

 <?php
// Chaîne d&#39;origine
$str = "hello world";

// utiliser pack() Chaînes d&#39;emballage,Le format est 'a*' exprimer NULString rempli
$packed = pack('a*', $str);

// utiliser bin2hex() 转换为十六进制exprimer
$hex = bin2hex($packed);

echo "Chaîne d&#39;origine: " . $str . "\n";
echo "十六进制exprimer: " . $hex . "\n";
?>

Résultat de sortie:

 Chaîne d&#39;origine: hello world
十六进制exprimer: 68656c6c6f20776f726c64

4. DESCRIPTION DU FORMAT COMMUNE Pack ()

  • A : NUL REMPLER STRING

  • A : l'espace remplit la ficelle

  • H : corde hexadécimale, un bit bas est devant

  • H : corde hexadécimale, à haut chiffre devant

  • C : caractères non signés (8 bits)

  • N : entier court non signé (16 bits, Big-endian Endian)

  • N : entier long non signé (32 bits, Big-endian Endian)

Si vous souhaitez traiter directement les cordes hexadécimales à Binary via le pack, vous pouvez utiliser quelque chose comme:

 <?php
$hexStr = "68656c6c6f";
$bin = pack('H*', $hexStr);
echo $bin; // Sortir la chaîne correspondante hello
?>

5. Combiné avec des scénarios réels

Si vous souhaitez envoyer des données hexadécimales à une interface, ou codez une chaîne pour la stocker sous forme hexadécimale, la méthode ci-dessus est très efficace.

Par exemple, obtenez des données d'une API:

 <?php
$url = "https://m66.net/api/data";
$response = file_get_contents($url);

// Convertir le contenu de la réponse en hexadécimal
$hexResponse = bin2hex($response);

echo "Format hexadécimal du contenu de la réponse:\n";
echo $hexResponse;
?>

6. Résumé

  • La fonction Pack () peut être utilisée pour emballer des chaînes ou des données en binaire dans un format spécifique.

  • Pour convertir une chaîne en hexadécimal, la méthode commune est d'abord pack () (le format est généralement «a *» ), puis le convertir avec bin2hex () .

  • Vous pouvez également utiliser Pack ('H *', $ hexstring) pour convertir les cordes hexadécimales en binaire.

  • Selon les besoins réels, sélectionnez les caractères de format raisonnablement et utilisez pack () et bin2hex () de manière flexible.

Grâce à cet article, j'espère que vous pourrez maîtriser la fonction Pack () en PHP et les techniques de conversion des chaînes et de l'hexadécimal.