Maison >développement back-end >tutoriel php >Comment puis-je afficher des images binaires directement dans un seul script sans les enregistrer sur le disque ?
Problème :
Les images peuvent-elles être recréées et affichées directement à partir de données binaires dans le même scénario ? Cela implique de traiter les données avec GD ou des outils similaires avant de les afficher dans une balise d'image HTML. L'objectif est d'éviter de sauvegarder les images traitées sur le disque ou d'utiliser des scripts externes.
Solution :
Cela peut être réalisé en utilisant les URI de données dans l'attribut source de l'image. Le format de l'URI des données est :
data:[<MIME-type>][;charset="<encoding>"][;base64],<data>
Cette fonction PHP crée un URI de données à partir d'un fichier :
function data_uri($file, $mime) { $contents = file_get_contents($file); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); }
Le code suivant affiche une image à l'aide d'un URI de données :
echo '<img src="' . data_uri('elephant.png', 'image/png') . '" alt="An elephant" />';
Utilisation :
Pour afficher les données d'image binaires traitées, vous pouvez utiliser la fonction data_uri et afficher l'URI résultant comme source d'image comme ceci :
$imagedata1 = file_get_contents('assets/test.png'); $imagedata1 = process_using_gd_or_something($imagedata1); echo '<img src="' . data_uri('data:image/png;base64,' . base64_encode($imagedata1)) . '" />';
Ce code affichera l'image traitée directement à partir des données binaires sans utiliser de scripts externes ni de stockage sur disque.
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!