Maison >développement back-end >Problème PHP >Comment convertir un fichier en tableau d'octets en PHP

Comment convertir un fichier en tableau d'octets en PHP

PHPz
PHPzoriginal
2023-04-19 09:15:17895parcourir

PHP est un langage de script largement utilisé dans le développement Internet. Ses excellentes performances et ses fonctionnalités faciles à apprendre en ont fait un langage de développement populaire. Au cours du processus de développement, nous devons souvent convertir des fichiers en tableaux d'octets pour répondre à des besoins spécifiques.

Cet article présentera la méthode de conversion de fichiers en tableaux d'octets en PHP et fournira quelques exemples de code pratiques pour permettre aux développeurs de démarrer rapidement.

1. Utilisez la fonction file_get_contents

En PHP, vous pouvez utiliser la fonction file_get_contents pour lire facilement le fichier dans un type de chaîne, puis le convertir en tableau d'octets. Les étapes spécifiques sont les suivantes :

  1. Utilisez file_get_contents pour lire le fichier

$file_path = 'file.txt';
$file_content = file_get_contents($file_path);

Dans le code ci-dessus, $file_path est le fichier path et $file_content est le contenu du fichier lu.

  1. Convertir une chaîne en tableau d'octets

$byte_array = unpack('C*', $file_content);

Dans le code ci-dessus, la fonction unpack peut convertir une chaîne en un tableau d'octets. « C » signifie des caractères non signés, « » signifie correspondre à tous les caractères.

Le code complet est le suivant :

$file_path = 'file.txt';
$file_content = file_get_contents($file_path);
$byte_array = unpack('C*', $file_content);

Utilisez ce qui précède code en Le fichier est converti en un tableau d'octets.

2. Utilisez la fonction fread

En plus d'utiliser la fonction file_get_contents, nous pouvons également utiliser la fonction fread pour lire le fichier sous forme de tableau d'octets. Les étapes spécifiques sont les suivantes :

  1. Utilisez la fonction fopen pour ouvrir le descripteur de fichier

$file_path = 'file.txt';
$handle = fopen($file_path, 'rb');

Dans ce qui précède code, 'rb' signifie ouvrir le fichier en mode binaire pour éviter les conversions inutiles lors de la lecture de fichiers binaires.

  1. Lisez le contenu du fichier et convertissez-le en tableau d'octets

$byte_array = array();
while(!feof($handle)){

$byte = fread($handle, 1);
array_push($byte_array, ord($byte));

}
fclose($handle);

Above In le code, la fonction feof détermine si la fin du fichier a été atteinte, la fonction fread lit les données binaires du fichier et les convertit en octets de type caractère, et la fonction ord peut renvoyer la valeur du code ASCII du caractère.

Le code complet est le suivant :

$file_path = 'file.txt';
$handle = fopen($file_path, 'rb');
$byte_array = array();
while(!feof($handle )){

$byte = fread($handle, 1);
array_push($byte_array, ord($byte));

}
fclose($handle);

Utilisez le code ci-dessus pour lire le fichier sous forme de tableau d'octets.

3. Exemples de code pratiques

Dans le développement réel, nous devons effectuer différentes opérations sur les fichiers, donc différentes implémentations de code sont nécessaires. Quelques exemples de code pratiques sont fournis ci-dessous à titre de référence pour les développeurs.

  1. Calculer la valeur de hachage du fichier

$file_path = 'file.txt';
$file_content = file_get_contents($file_path);
$hash_value = hash('sha256', $file_content);

Le code ci-dessus utilise SHA L'algorithme -256 calcule la valeur de hachage du fichier et la fonction de hachage peut facilement effectuer des calculs de hachage.

  1. Obtenir des informations sur la largeur et la hauteur du fichier image

$file_path = 'image.png';
$handle = fopen($file_path , 'rb');
$byte_array = array();
while(!feof( $ handle)){

$byte = fread($handle, 1);
array_push($byte_array, ord($byte));

}
fclose($handle);
$image_info = getimagesize($file_path);
$width = $image_info[0];
$height = $image_info[1];

Utilisez le code ci-dessus La fonction getimagesize dans la bibliothèque de fonctions PHP peut facilement obtenir les informations de largeur et de hauteur du fichier image.

  1. Déterminez le type de fichier

$file_path = 'document.docx';
$finfo = new finfo(FILEINFO_MIME_TYPE);
$file_type = $finfo->file($file_path);
if($file_type = = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'){

echo '该文件为Word文件';

}

Le code ci-dessus utilise la fonction finfo dans la bibliothèque de fonctions PHP pour obtenir facilement les informations de type MIME du fichier afin de déterminer le type de fichier.

4. Résumé

Cet article présente comment convertir des fichiers en tableaux d'octets en PHP et fournit quelques exemples de code pratiques auxquels les développeurs peuvent se référer. Dans le développement réel, nous devons choisir en fonction de besoins spécifiques et utiliser des méthodes appropriées pour la conversion de fichiers. Dans le même temps, nous pouvons également utiliser d'autres bibliothèques de fonctions PHP, telles que SPL et Pattern, pour implémenter les opérations et le traitement des fichiers.

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!

Déclaration:
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