[PHP] Bildtitel auslesen

tempo.1

Cadet 4th Year
Registriert
Feb. 2007
Beiträge
93
Servus,

grad hatte ich da eine Idee und suche schon ne ganze Weile nach einer Lösung.
Mit PHP kann man ja über die funktion getimagesize() ein Array mit ein Paar Bildinfos erstellen:
print_r ergibt:
Code:
Array
(
    [0] => 1152
    [1] => 864
    [2] => 2
    [3] => width="1152" height="864"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
)
So, unter XP oder Vista kann man nun mit Rechte Maustaste -> Eigenschaften -> Im Reiter Details einen Titel und einen Kommentar angeben.
gibt es nun die Möglichkeit mittels PHP diese Infos aus der Datei rauszulesen?

Gruß
 
(edit: folgende Infos sind wohl falsch, für dich richtigen siehe 'Edit' und 'Edit 2:' ;))
Ohne 100% sicher zu sein: Nein, kann man nicht.

Denn ich glaube, dass die von dir gewünschten Informationen Teil des Windows Filesystems sind und somit nicht gewzungenermassen in der Datei enthalten. Oder anders gesagt, wenn du das Bild auf den Appache Server lädst werden der Titel/Kommentar gar nicht mit übertragen.
(Anders sieht es beispielsweise mit EXIF Daten aus, die Teil des JPEG Files sind und nicht, wie ich bei den anderen Daten vermute, des Win Filesystems)




Edit:
Hmm hab grad den Test gemacht und ein 'kommentiertes' File auf den Server geladen und wieder zurück gedownloadet - der Kommentar war danach immer noch vorhanden, möglicherweise ist es also doch möglich und ich hab oben was falsches erzählt :/

Edit 2:
Ich hab bissel gegoogled - 'Image Title' und 'Image Description' sind tatsächlich Teile des JPEG Headers und nicht des Win Dateisystems, sie müssten sich also auslesen lassen. Ich denke dazu solltest du dir mal die PHP Funktion zum Auslesen von EXIF Daten angucken -> http://www.php.net/manual/de/ref.exif.php ; insbesondere 'exif_read_data' und dort 'COMMENT'.
 
Zuletzt bearbeitet:
Ja, die gibt es. Ich hatte mal irgendwann darüber was gelesen - aber ich kann dir nicht sagen wie es geht.
Ich weiß nur noch, dass es relativ kompliziert war, d.h. es gibt keine PHP-Funktion, die dir den Kommentar automatisch ausliest, sondern du musst dir den kommentar selbst aus dem header fischen. ich habs damals net verstanden, vllt würd ichs heut. Google einfach mal...
 
Servus,

Danke für die schnellen Antworten.
Habs gelesen, getestet und es geht.
dann wirds ja doch was mit der eigenen Galerie

Danke, ihr seid halt doch die besten
und Gruß

Edit:
Servus,

Dazu hab ich jetzt doch noch ne Frage.
folgenden Codeschnipsel habe ich in meiner Galerie verwendet:
PHP:
$besch="Bild".($i<10)?"0".$i:$i);
$Bildtitel=exif_read_data("http://www.freierfunden.de/image/Bild".(($i<10)?"0".$i:$i).".jpg");
echo ($Bildtitel['Title']=="")?$besch:$Bildtitel['Title'];
Damit dauert der Seitenaufbau etwa 40 bis 50 sekunden. Dann hat er aber auch genau das gemacht, was er soll. Ersetze ich aber nun den Codeschnipsel durch:
PHP:
$besch="Bild".($i<10)?"0".$i:$i);
echo $besch;
dauert der seitenaufbau nichtmal eine sekunde. vielleicht gradmal, aber auf jeden fall deutlich schneller.
Gibts dazu ne erklärung? liegt das am webhoster?
ich finde das ist eine sehr elegante Lösung und würde diese gerne weiter verwenden. Leider habe ich bei meinem webhoster nicht den platz um die Bilder dort zu speichern, deswegen der umweg über die andere domain www.freierfunden.de, die übrigens frei erfunden ist und nicht die domain, auf der die galerie läuft.
Also gibts ne Möglichkeit den Seitenaufbau zu beschleunigen?

Gruß

Edit2:
Servus,
noch ne Info:
PHP:
<?php
$time_start = microtime(true);
//hier die Galerie
$time_end = microtime(true);
$ladezeit = $time_end - $time_start;
?>
<!-- Ladezeit: <?=$ladezeit?> sek-->
ergibt eine PHP Parsezeit von 0.15 bis 0.25.
Ich hoffe mir kann jemand einen kleinen Schups in die richtige richtung geben.

Gruß
 
Zuletzt bearbeitet:
Wenn du probeweise ein Bild doch auf den Server laden würdest wo auch das Script läuft und dann die erste Variante testest, siehst du möglicherweise wo der Engpass ist.

Dauert der Aufbau dann nämlich immer noch so lang, ist das Problem tendentiell eher irgendwo im Code begraben, ist es dann auch schnell, dann liegts wohl eher am Umweg über den anderen Hoster.

Ich würde spontan ja zweiteres vermuten, denn ich schätze mal dein Script muss dazu erstmal das Bild vom anderen Server laden um überhaupt deine Anweisungena usführen zu können. Sow ird quasi der Ablauf deines Scripts unterbrochen, in dem der Scriptserver vom Bilderserver das Bild anfordert, lädt und auswertet bevor es wietermachen kann.

Sind aber nur Vermutungen.
 
Sevrus,

die Vermutung hat sich bestätigt. Dachte die Funktion läd sich nur den Header und nicht das ganze Bild. dem ist aber nicht so.
Also folgte danach ein kleiner test:
auf dem zweiten Webspace hab ich eine php Datei erstellt, die mir on the fly das bild verkleinert auf 1x1 Pixel. leider werden dabei aber auch die exif Infos nicht mitübertragen.
Also quasi das:
PHP:
$Bildtitel=exif_read_data("http://www.freierfunden.de/thumb.php?img=image/Bild01.jpg");
echo "Bildtitel: ".$Bildtitel['Title'];
gibt folgendes aus:
Bildtitel:
Tja, bleibt mir wohl nix anderes übrig als entweder die elegante Lösung zu verwerfen und eine Datenbank erstellen oder das ganze mithilfe des Dateinames machen.
Ich danke allen die versucht haben mir zu helfen.

Gruß
 
Zurück
Oben