Bilder in HTML/php Datei verstecken und einbinden?

...komplette Frage anzeigen

3 Antworten

Du könntest den Bildblob in der Datei als String speichern, den Du dann mit passenden PHP-Funktionen ausgeben könntest. Allerdings wird diese Datei dadurch je nach Bild enorm groß.

Da du ja schon gute Antworten erhalten hast, finde ich es interessant zu erfahren, was du damit eigentlich bezwecken möchtest.

Was genau meinst du mit "verstecken"? Was versuchst du zu erreichen?

Eine Möglichkeit ein Bild "inline" (also nicht als externe Datei, sondern direkt im HTML) einzubinden ist eine Base64-Kodierung, z.B. mit diesem Tool: https://www.base64-image.de/

Der fertige Code kann dann im HTML wie folgt verwendet werden:

<img src="data:image/png;base64,iVBORw0KGgo...">

Mit Verstecken meine ich das ich nur die eine HTML/php Datei habe aber trotzdem das Bild nutzen kann (Die Datei soll sozusagen als "Ordner" fungieren)

1
@LkLp1082

Ok, das wäre damit ja erreicht. Serverseitig kannst du die Base64 Kodierung auch erzielen:

$image = 'BILD_URL';
$imageData = base64_encode(file_get_contents($image));
$src = 'data: '.mime_content_type($image).';base64,'.$imageData;

echo '<img src="' . $src . '">';
0

Wenn ich die Methode über den Link nutze, wo liegt dann die Datei? Ist die dann auf dem Webserver der Webseite

0
@LkLp1082

Die Datei liegt nirgendwo. Der Base64-Code enthält das komplette Bild ohne dass du eine zusätzliche Datei brauchst.

0
@Dory1

Verschlechter dies dann die Performence der Webseite? Ich meine damit das die Webseite langsamer lädt. Welche Nachteile hat diese Methode?

0
@LkLp1082

Naja, effektiv hebelst du damit den Browser-Cache aus - das Bild wird ja jedes mal geladen wenn du die Seite besuchst. Die Ladezeit der Seite selbst ist natürlich auch langsamer da ja mehr HTML-Code übertragen wird.

0
@Dory1

Ist es dann so das umso mehr Bilder auf der Seite sind, desto länger dauert das laden der Seite?

0
@LkLp1082

Im Endeffekt schon, aber es kommt darauf an was sonst noch so auf der Seite ist. Der Browser kann ja nur das darstellen, was schon geladen wurde. Stell dir vor du bindest die Bilder extern ein. Dann können schon alle anderen Teile der Seite angezeigt werden (Text etc.), die Bilder werden dann einzeln nachgeladen. Bei der Base64 Methode funktioniert das natürlich nicht.

0
@Dory1

Kannst du mir auch sagen um wie viele Sekunden/Milisekunden dies pro Bild langsamer wird?

0
@LkLp1082

Sorry, pauschal kann ich das nicht sagen - das hängt sicher von den Bilddaten und der Bildgröße selbst ab. Ganz grob geschätzt würde ich sagen die Methode ist ca. 30% langsamer - kenne mich damit aber, um ehrlich zu sein, nicht sehr gut aus.

0
@LkLp1082

Die Performance kann sich dadurch verbessern oder verschlechtern. Es kommt vor allem auf die Größe des Bildes an. Ist es größer, wird die Seite langsamer laden.

1

Was möchtest Du wissen?