Je fais actuellement ce qui suit pour décoder la base64 images en PHP: Comme vous pouvez le voir ci-dessus, nous acceptons les quatre types d'image la plus standard (JPEG, PNG, GIF, BMP) ; p> Cependant, certaines de ces images sont très volumineuses et balayant chaque 4 à 5 fois avec Str_Replace semble un déchet terrible et terriblement inefficace. P> est là une façon de pouvoir être de manière fiable Strip the Data: Image Partie d'une chaîne d'image de base64 en une seule passe? Peut-être en détectant la première virgule dans la chaîne? P> Mes excuses Si c'est un problème simple, PHP n'est pas mon fort. Merci d'avance. P> p>
5 Réponses :
Vous pouvez utiliser une expression régulière:
$img = preg_replace('#^data:image/[^;]+;base64,#', '', $s['image']);
Parfait! Bien que toutes les réponses soient bonnes et fonctionnent parfaitement. Il semble que votre méthode soit la plus rapide, donc je vous accorderai avec la réponse dès que je suis capable. Merci beaucoup. :)
Vous devriez le tester mais je pense que cette solution devrait être légèrement plus rapide que celle de Mihai Iorga
$offset = str_pos($s['image'], ','); $data = base64_decode(substr($s['image'], $offset));
fonction Essayez ce code: P> file_get_contents code> Supprimer l'en-tête et utilisez
base64_decode code> fonction,
Donc, vous obtenez une image de contenu claire.
$img = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0gA...';
$imageContent = file_get_contents($img);
Cela devrait être la réponse acceptée. Solution très intelligente!
Cela devrait certainement être la réponse acceptée, une solution beaucoup plus élégante
Je suis un peu en retard à la fête, mais c'est de loin la meilleure réponse.
S'il vous plaît essayez ceci, c'est plus simple en avant!
N'est-ce pas l'ouverture des menaces de sécurité?
Je génère une image avec JavaScript / Kendo et envoyez ceci par AJAX au serveur.
$contentType = mime_content_type($s['image']); $img = preg_replace('#^data:image/(.*?);base64,#i', '$2', $s['image']);
Pouvez-vous ajouter un peu d'explication sur la raison pour laquelle cela fonctionne mieux '
Je génère une image avec JavaScript / Kendo et envoyez ceci par AJAX au serveur. Preg_replace ('# ^ Données: image / [^;] +; base64, #' ',' ', $ S [' image ']); code> Cela ne fonctionne pas dans ce cas.
Parfait, veuillez ajouter ça à votre réponse :)
Vous pouvez expression régulière pour supprimer l'image ou le format de données PDF.
data.replace(/^data:application\/[a-z]+;base64,/, "")