C
Core2Quad
Gast
Ich habe hier ein Script, dass EXIF-Daten in Bildern in ein Template einfügt.
Dadurch werden Platzhalter im Template durch die EXIF-Daten ersetzt.
Das funktioniert.
Manche Bilder enthalten keine EXIF-Daten, das wird abgefangen und die Platzhalter sollen durch "nichts" ersetzt werden, also soll da gar nichts stehen.
Das funzt aber nicht, es bleiben die Platzhalter stehen.
Das sieht ungefähr so aus:
Das ersetzen durch "nichts" soll im untersten Teil stattfinden, aber das Script ersetzt <BW> nicht, bzw. läßt es einfach stehen. Wo ist der Fehler? Das Abfangen oben funktioniert, sonst kämen Fehlermeldungen.
Dadurch werden Platzhalter im Template durch die EXIF-Daten ersetzt.
Das funktioniert.
Manche Bilder enthalten keine EXIF-Daten, das wird abgefangen und die Platzhalter sollen durch "nichts" ersetzt werden, also soll da gar nichts stehen.
Das funzt aber nicht, es bleiben die Platzhalter stehen.
Das sieht ungefähr so aus:
PHP:
if(extension_loaded('exif')) {
$curr_image = "$path_to_images/$item[0]";
$all_exif = @exif_read_data($curr_image,0,true);
if(!empty($all_exif)) {
$exif_file = @$all_exif['FILE'];
$exif_IFD0 = @$all_exif['IFD0'];
// $comment = @$all_exif['COMMENT'][0];
$exif = @$all_exif['EXIF'];
if(!empty($exif)) {
$Blende = $exif['FNumber'];
if(!empty($Blende)) {
@list($n, $d) = explode('/', $Blende);
$Blende = $n / $d;
$Zeit = $exif['ExposureTime'];
$ISO = $exif['ISOSpeedRatings'];
$BW = $exif['FocalLength'];
@list($n, $d) = explode('/', $BW);
$BW = $n / $d;
$groesse = $exif_file['FileSize'];
$groesse = number_format($groesse / 1024,0);
$dimensions = getimagesize($curr_image);
$breite = $dimensions[0];
$hoehe = $dimensions[1];
$template = str_replace("<BW>","<span class='text8'> - </span><span class='text8'>$BW</span><span class='text8'>mm</span><span class='text8'> | </span>",$template);
$template = str_replace("<BLENDE>","<span class='text8'>F$Blende</span><span class='text8b'> | </span>",$template);
$template = str_replace("<ZEIT>","<span class='text8'>$Zeit</span><span class='text8'>s</span><span class='text8'> | </span>",$template);
$template = str_replace("<ISO>","<span class='text8'>ISO $ISO</span><span class='text8'> | </span>",$template);
$template = str_replace("<GROESSE>","<span class='text8'>Bildgröße $groesse<span class='text8'>kB</span></span><span class='text8'> | </span>",$template);
$template = str_replace("<BREITE>","<span class='text8'>$breite<span class='text8'>x</span></span>",$template);
$template = str_replace("<HOEHE>","<span class='text8'>$hoehe</span><span class='text8'>px</span>",$template);
}
}
}
else
{
$template = str_replace("<BW>",'',$template);
$template = str_replace("<BLENDE>",'',$template);
$template = str_replace("<ZEIT>",'',$template);
$template = str_replace("<ISO>",'',$template);
$template = str_replace("<GROESSE>",'',$template);
$template = str_replace("<BREITE>",'',$template);
$template = str_replace("<HOEHE>",'',$template);
}
}
Das ersetzen durch "nichts" soll im untersten Teil stattfinden, aber das Script ersetzt <BW> nicht, bzw. läßt es einfach stehen. Wo ist der Fehler? Das Abfangen oben funktioniert, sonst kämen Fehlermeldungen.