Maison >développement back-end >Problème PHP >Comment convertir du contenu en images en php

Comment convertir du contenu en images en php

藏色散人
藏色散人original
2021-07-03 14:37:593217parcourir

Comment PHP convertit le contenu en images : 1. Extrayez les données requises pour le stockage des dataurl via des expressions régulières, puis affichez-les directement sur la page ; 2. Utilisez les méthodes substr et strpos pour enregistrer l'image localement.

Comment convertir du contenu en images en php

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

Comment php convertit-il le contenu en images ? PHP convertit dataurl en méthode image image

L'image générée à l'aide de Canvas utilise dataurl. PHP ne peut pas l'enregistrer directement sur l'ordinateur local via la méthode file_put_contents, elle doit donc être transcodée.

L'url de l'image est la suivante

$imgstr = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';

Méthode 1 :

Extraire les données requises pour le stockage de l'url via des expressions régulières, puis affichez-les directement sur la page

         if 
          (!preg_match(
         '/data:([^;]*);base64,(.*)/'
         , 
         $imgstr
         , 
         $matches
         )) {
        
 
           
         die
         (
         "error"
         );
        
 
         }
        
 
           
        
 
         $content 
          = 
         base64_decode
         (
         $matches
         [2]);
        
 
         header(
         'Content-Type: '
         .
         $matches
         [1]);
        
 
         header(
         'Content-Length: '
         .
         strlen
         (
         $content
         ));
        
 
           
        
 
         echo 
          $content
         ;
        
 
         die
         ;

Méthode 2 :

Si vous souhaitez simplement enregistrez l'image localement, vous pouvez utiliser les méthodes substr et strpos

       $imgdata 
          = 
         substr
         (
         $imgstr
         ,
         strpos
         (
         $imgstr
         ,
         ","
         ) + 1);
        
 
         $decodedData 
          = 
         base64_decode
         (
         $imgdata
         );
        
 
         file_put_contents
         (
         '11.png'
         ,
         $decodedData 
          );

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!

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