php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-02-2009, 21:04
fabio
 Registrierter Benutzer
Links : Onlinestatus : fabio ist offline
Registriert seit: Aug 2003
Ort: Wetzikon, ZH, CH
Beiträge: 408
fabio ist zur Zeit noch ein unbeschriebenes Blatt
Standard PNG mit Endung .jpg ausgeben

hi

bin dabei ein script zu machen, welches mit GD lib fotos verkleinert, zuschneidet und mit einem rahmen überlagert (dass die ecken abgedrundet sind).
das script überprüft ob ein foto vorhanden ist und gibt dieses dann aus. zusätzlich speichert es das ergebnis ab, um ein weiteres mal nicht nochmal rechnen zu müssen.

jetzt ist es so, dass die bilder alles JPGs sind, wird aber eine falsche ID angegeben, wird ein standbild genommen, welches einfach ein helles blau ist. dieses habe ich vorbereitet als PNG.

die bilder werden aber mittels htaccess aufgerufen, zb "141.jpg". ist das 141 nicht vorhanden, wird das vorgegebene PNG ausgegeben, inklusive dem header image/png.
bei safari und firefox macht das kein problem, das bild wird korrekt angezeigt auch wenn die endung falsch ist.

ich will aber sicher sein, dass auch andere browser damit klar kommen, sprich der internet explorer (habe keinen windows mehr) und verschiedene betriebssysteme.

kurzum:
macht es irgendeinem browser/system probleme, ein PNG (mit image/png header) mit dateiendung .jpg darzustellen?
Mit Zitat antworten
  #2 (permalink)  
Alt 17-02-2009, 21:27
lennart
 PHP Junior
Links : Onlinestatus : lennart ist offline
Registriert seit: May 2007
Ort: Hamburg
Beiträge: 565
lennart ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Konvertiere doch einfach das PNG in JPEG..
Mit Zitat antworten
  #3 (permalink)  
Alt 17-02-2009, 21:37
php_fussel
 Newbie
Links : Onlinestatus : php_fussel ist offline
Registriert seit: Jan 2009
Beiträge: 120
php_fussel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das Browser mit png Schwierigkeiten haben wüßte ich momentan nicht! Der IE hat bei png nur Probleme mit Transparenz ... die kann er in Gegensatz zu FF und Opera nicht. Gibt da zwar son JS-Kit ... aber ist in Deinem Fall nicht nötig!

Gruß php_fussel
Mit Zitat antworten
  #4 (permalink)  
Alt 17-02-2009, 21:42
fabio
 Registrierter Benutzer
Links : Onlinestatus : fabio ist offline
Registriert seit: Aug 2003
Ort: Wetzikon, ZH, CH
Beiträge: 408
fabio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die PNGs sind schon normale PNGs, keine PNG24, auch ohne transparenz.
der einzige grund, weswegen es PNGs sind und keine JPG ist die dateigrösse.

dass der internet explorer PNG korrekt anzeigen kann (PNG8 und nicht 24) ist mir klar, ich frage aber spezifisch wie es ist, wenn die dateiendung eine andere ist als erwartet.
Mit Zitat antworten
  #5 (permalink)  
Alt 17-02-2009, 21:56
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Eine Dateiendung sagt nichts über den Inhalt aus, und mir ist kein gängiger Browser bekannt, der den Header ignoriert und Eigenmächtig und anhand der Dateiendung handelt.

Der Sinn hinter deinem Vorgaben erschließt sich mir allerdings nicht. Wenn es sich um PNGs handelt, liefer sie doch auch so aus?!
Mit Zitat antworten
  #6 (permalink)  
Alt 17-02-2009, 22:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Wir befinden uns im Umfeld "HTTP", und da gibt es ueberhaupt keine "Dateiendungen" - weil es keine "Dateien" gibt.

Was es gibt, das sind Ressourcen. Und was die enthalten, darueber gibt einzig und allein der Content-Type-Response-Header Auskunft.
Ob der Identifier der Ressource auf ".png" oder ".sfdglsdgh" endet, oder ueberhaupt keine "Punkte" enthaelt, ist auch vollkommen egal.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 17-02-2009, 22:43
fabio
 Registrierter Benutzer
Links : Onlinestatus : fabio ist offline
Registriert seit: Aug 2003
Ort: Wetzikon, ZH, CH
Beiträge: 408
fabio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga oder ".sfdglsdgh" endet
was ist das denn für ne datei? ^^


gut wenn der header also höhere priorität als die endung hat ist gut, dann wird es überall klappen.

also um die frage "warum" noch aufzuklären:

ich binde bilder mit <img src='12.jpg'><img src='13.jpg'> ein. das generieren der tags erfolgt lediglich via ID.
mit einem htaccess script wird die "12.jpg" datei an /img/image.php?id=12 weitergeleitet.

das PHP script überprüft zuerst, ob eine datei 12.jpg bereits existiert (da bereits mit dem rahmen versehen und korrekte grösse) und gibt den jpg header aus und dann die datei.
ansonsten wird überprüft ob 12.png existiert (dann wäre es eine manuell von mir erstellte PNG weil besser für den einsatz, zb weil weniger platz oder keine jpgartefakte).

existiert weder die eine noch die andere datei, wird im "unbearbeitet" ordner nach der datei "12.jpg" (die unbearbeiteten sind immer jpgs) gesucht und diese ins GDlib geöffnet.
(existiert die 12.jpg auch im unbearbeitet nicht, wird einfach eine vorgefertigtes PNG ausgegeben.)

diese geöffnete 12.jpg wird jetzt verkleinert, an den seiten beschnitten dass es eine quadratische grösse ist (130x130px) und eine PNG mit transparenz ins GDlib geladen und diese darüber gelegt. (in dieser PNG sind die abgerundeten ecken weiss, so dass das skalierte foto weisse abgerundete ecken bekommt).

ist die datei fertig, wird sie ins "bearbeitet" verzeichnis mit 12.jpg gespeichert und danach mit jpeg header ausgegeben.

wenn das nächstemal das foto mit der ID 12 aufgerufen wird, kann die vorhin gespeicherte version ausgegeben werden, und GD lib muss nicht jedesmal "on-the-fly" erstellen.

taaadaa
Mit Zitat antworten
  #8 (permalink)  
Alt 17-02-2009, 22:48
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von fabio
was ist das denn für ne datei? ^^
Zitat:
gut wenn der header also höhere priorität als die endung hat ist gut, dann wird es überall klappen.
Bzgl. beidem: Lies meine Antwort noch mal.

Es gibt ueberhaupt keine "Datei".
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 17-02-2009, 23:09
fabio
 Registrierter Benutzer
Links : Onlinestatus : fabio ist offline
Registriert seit: Aug 2003
Ort: Wetzikon, ZH, CH
Beiträge: 408
fabio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich weiss, das mit dem "was ist das den für ne datei", hätt ich wohl noch n <sarkasmus> tag rummachen sollen

aber ich hab schon verstanden dass header und endung nichts miteinander zu tun haben, die frage war lediglich, ob das auch jeder browser mitbekommen hat, weil hätte sein können, dass der internet explorer probleme hätte machen können
scheint aber doch nicht so, danke
Mit Zitat antworten
  #10 (permalink)  
Alt 18-02-2009, 10:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Original geschrieben von fabio
das PHP script überprüft zuerst, ob eine datei 12.jpg bereits existiert (da bereits mit dem rahmen versehen und korrekte grösse) und gibt den jpg header aus und dann die datei.
Das kannst du auch mit mod_rewrite erschlagen.
Mit Zitat antworten
  #11 (permalink)  
Alt 18-02-2009, 11:08
phpguru42
 Newbie
Links : Onlinestatus : phpguru42 ist offline
Registriert seit: Oct 2008
Beiträge: 71
phpguru42 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von fabio
aber ich hab schon verstanden dass header und endung nichts miteinander zu tun haben, die frage war lediglich, ob das auch jeder browser mitbekommen hat, weil hätte sein können, dass der internet explorer probleme hätte machen können
scheint aber doch nicht so, danke
Da wäre ich mir nicht so sicher, der IE rendert Bilder auch schonmal als HTML, unabhängig vom übermittelten MIME-Typ des Servers.

Internet Explorer führt Code in Bildern aus
Mit Zitat antworten
  #12 (permalink)  
Alt 18-02-2009, 11:15
fabio
 Registrierter Benutzer
Links : Onlinestatus : fabio ist offline
Registriert seit: Aug 2003
Ort: Wetzikon, ZH, CH
Beiträge: 408
fabio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wusst ichs doch, dass der IE mindestens einen sonderfall machen muss um für seinen ruf zu sorgen
ich denke aber, wenn der inhalt und header (und somit auch der MIME) stimmt, sollte die endung egal sein.

zumal ich es jetzt einfach mit parallels auf'm mac getestet hab, und dort hat der IE es korrekt dargestellt
Mit Zitat antworten
  #13 (permalink)  
Alt 18-02-2009, 11:51
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von phpguru42
Da wäre ich mir nicht so sicher, der IE rendert Bilder auch schonmal als HTML, unabhängig vom übermittelten MIME-Typ des Servers.

Internet Explorer führt Code in Bildern aus
Naja, der Artikel sagt eindeutig, dass es nicht "unabhängig" vom übermittelten MIME-Type geschieht, sondern wenn widersprüchliche Angaben vorliegen. Darüberhinaus würde die Kontrolle im konkreten Fall immer noch zu einer korrekten Anzeige des Bildes führen.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:02 Uhr.