Mit der PHP-Funktion include() eine png-Bild
Ok Leute, trotz der besten bekannten Praktiken, heute habe ich beschlossen, dies zu tun:
<img src='<? include("dir/dir/img.png"); ?>'>
Mit 6 unterschiedlich .png-Bilder.
Leider nur 2 von den 6 waren schön sichtbar auf dem browser.
, Warum nur 2 der 6 Bilder gezeigt wurden? Vielleicht gab es Daten, Verluste, die bits auf dem Weg?
Vielen Dank für Ihre Zeit,:]
Was versuchen Sie zu tun? Warum nicht einfach drucken Sie die Datei Pfad?
xD ja, das ist mehr nützlich.
xD ja, das ist mehr nützlich.
InformationsquelleAutor sadasant | 2010-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es funktioniert nicht, weil
src
Attribut eines<img>
tag ist nicht enthalten soll, die raw-Daten eines Bildes; vielmehr ist es enthalten soll, eine URI, die auf die Bilddaten.Mithilfe
data:
URIs, binden Sie das Bild direkt in Ihre (X)HTML-Dokument. Beachten Sie, dass dies nicht funktioniert in vielen Browsern, wie ältere Versionen von Internet Explorer. Wie gut, es gibt Grenzen, wie die 32KB-Grenze IE8 Orte aufdata:
URIs.Mit PHP, hier ist, was dein code würde wie folgt Aussehen:
Vergessen Sie nicht, ändern Sie die
image/png
Teil der URL, wenn Sie die Art von Bild, das Sie verwenden, ändert sich. Zum Beispiel, wenn Sie ein GIF-Bild, ändern Sie es zuimage/gif
.Die seltsame Tatsache ist, dass es funktioniert, 2 mal XD!!!!! aber, okay, Sie gab nur den richtigen Weg. Danke :]
InformationsquelleAutor Dumb Guy
Wurde nicht erwartet, überhaupt zu arbeiten.
Für ein standard-Weg, dies zu tun (einschließlich inline-Bilder in HTML-Dokument statt auf deren URL), siehe die
data
URI-Schema.file_get_contents
um eine Datei Lesen, anstatt zu telefoniereninclude
. (include
d-Daten ist ein Sicherheitsrisiko!)Du hast Recht. Wenn er kontrolliert die Bilder, es ist nicht unbedingt ein Sicherheitsrisiko, aber das Bild enthalten können, durch die chance, die Charaktere
<?
. Nicht zu vergessen, wird es sofort ausgeben, so dass er nicht manipulieren kann, die Daten für die Erstellung der Daten-URI.Sie könnte haben einige output buffering kung-fu...
InformationsquelleAutor Artefacto
include()
sagt PHP das Parsen der Datei. Wenn durch Zufall, es enthält<?
werden Sie in echten Schwierigkeiten. Verwenden Sie stattdessenreadfile()
.Darüber hinaus Artefacto Antwort muss auch in Betracht gezogen werden.
In der Tat, und es gibt eine RIESIGE Schwachstelle hier. Öffnen Sie das Bild in Gimp, fügen Sie PHP-CODE in den KOMMENTAREN und versuchen die gehören wieder. ES WIRD AUSGEFÜHRT, PHP CODE AUS EINER BILD-DATEI! -- sehr gefährliche Sachen mit einschließen-für jede Datei wird nicht erwartet, dass PHP-code. Wenn Sie eine Benutzer-hochgeladene Bild oder sogar Sie gefunden (statt haben), könnten Sie platzieren eine Hintertür auf Ihrem server!
Ja, das ist es, was ich meinte. Eigentlich habe ich erfolgreich ausnutzt, kann mit einem CMS herzustellen, verwenden Sie diese Technik einmal aus. 🙂
InformationsquelleAutor scy
InformationsquelleAutor judge