Maison  >  Article  >  développement back-end  >  Comment obtenir des images réseau et les convertir en base64 en PHP

Comment obtenir des images réseau et les convertir en base64 en PHP

PHPz
PHPzoriginal
2023-03-29 10:13:262008parcourir

Dans le développement et la conception de sites Web, il est souvent nécessaire d'utiliser des images externes pour enrichir le contenu et l'esthétique de la page. Cependant, pour certaines raisons, nous devons parfois convertir les images réseau au format de chaîne base64. Cet article explique comment utiliser PHP pour obtenir des images réseau et les convertir au format base64.

1. Utilisez PHP pour obtenir des images Web

Tout d'abord, nous devons obtenir les données binaires des images Web. En PHP, on peut utiliser la bibliothèque curl pour obtenir des ressources réseau. L'utilisation de la bibliothèque curl nécessite les étapes suivantes :

1. Initialiser curl :
Utilisez la fonction curl_init() pour initialiser curl, qui renverra un handle curl qui pourra être utilisé pour des opérations ultérieures, telles que l'obtention de ressources, la définition d'options, etc. . Après l'initialisation, les options curl peuvent être définies à l'aide de la fonction curl_setopt().

$ch = curl_init();

2. Définir les options curl :
Définissez les options curl pour demander des ressources réseau et obtenir des données binaires. Les options qui doivent être définies incluent l'URL, la méthode de demande, l'inclusion ou non des informations d'en-tête, etc.

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);

Parmi eux, $url est l'adresse URL de l'image réseau à obtenir, l'option CURLOPT_RETURNTRANSFER renverra le contenu de la fonction curl_exec() sous forme de chaîne au lieu de le sortir directement, et l'option CURLOPT_BINARYTRANSFER renverra le contenu sans en-têtes HTTP.

3. Exécuter la requête curl :
Utilisez la fonction curl_exec() pour exécuter la requête curl et renvoyer les données binaires de réponse.

$image_data = curl_exec($ch);

4. Fermez le handle de ressource curl :
Utilisez la fonction curl_close() pour fermer le handle de ressource curl.

curl_close($ch);

Jusqu'à présent, nous avons utilisé curl pour obtenir les données binaires des images réseau. Nous verrons ensuite comment convertir ces données binaires au format de chaîne base64.

2. Convertir les données binaires au format de chaîne base64

PHP fournit la fonction base64_encode() pour convertir les données binaires au format de chaîne base64. Voici un exemple simple d'utilisation de cette fonction :

$image_base64 = base64_encode($image_data);

Ici, $image_data sont les données binaires de l'image réseau obtenues à l'étape précédente, et $image_base64 sont les données converties au format chaîne base64. Il convient de noter que la chaîne base64 convertie ne contient pas le préfixe "data:image/png;base64,". Si vous devez ajouter ce préfixe, vous pouvez utiliser le code suivant :

$image_base64 = "data:image/png;base64," . base64_encode($image_data);

3. Convertissez les images réseau directement en Format de chaîne base64

En plus d'utiliser curl pour obtenir des données binaires d'images réseau, PHP fournit également la fonction file_get_contents() pour obtenir directement des images réseau et les convertir au format de chaîne base64. Le code permettant d'utiliser cette méthode pour obtenir des images réseau est très concis :

$image_data = file_get_contents($url);
$image_base64 = "data:image/png;base64," . base64_encode($image_data);

Il est à noter que l'utilisation directe de la fonction file_get_contents() pour obtenir des ressources réseau bloquera le processus PHP et devra être traitée dans une tâche asynchrone pour éviter d'affecter les tâches ultérieures. opérations.

Pour résumer, en utilisant la fonction curl ou file_get_contents, nous pouvons convertir des images Web au format de chaîne base64 pour enrichir la conception de notre site Web.

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