ursus contionabundo: Noch ein wenig Kritik...

Beitrag lesen

<?php echo scaleImage($dateiinfo['basename'], h262.w366);?>

Das ist Mist.

Erstens wird das Bild beim Abruf skaliert - das ist "teuer" (Frisst sinnlos Leistung auf dem Server). Du solltest zumindest einen Cache haben. Ok ... den könnte die nicht gezeigte Funktion scaleImage bieten und nutzen. Allerdings glaube ich nicht daran, weil diese insgesamt recht fragwürdigen Charakters - Murks - ist.

Zweitens gibt es eine Methode namens scaleImage des Imagick-Objektes.

Drittens übergibst Du Deiner Funktion scaleImage einen String für den Dateiname und dann h262.w366. Und das ist Vielfach-Murks im allerbesten Sinn:

Drittens A:

h262.w366 könnte eine Konstante sein. Kann es aber nicht, weil der Punkt darin ist. Es können zwei concatenierte Konstanten sein (weil der Punkt darin ist) also ( Wert von h262 . Wert von w366 ) - Aber ich vermute, dass es auch so nicht ist. Es sollen wohl eher zwei Strings sein. Was dann die Verknüpfung (durch den Punkt) soll steht in den Sternen.

Wenn ich also Deinen fehlerhaften Code in folgendem Mini-Skript konzentriere:

<?php
function scaleImage( $a, $b ) {
  echo "\n";
}

scaleImage('foo', h262.w366 );

erhalte ich folgerichtig::

PHP Warning:  Use of undefined constant h262 - assumed 'h262' (this will throw an Error in a future version of PHP) in /tmp/test.php on line 6
PHP Warning:  Use of undefined constant w366 - assumed 'w366' (this will throw an Error in a future version of PHP) in /tmp/test.php on line 6

Fazit aus Drittens A: Dein Skript wird irgendein PHP-Update nicht überleben. Und ist deshalb Murks. Es sei denn natürlich man will testen, ob man durch das Füllen des Error-Logs den Server zum Stillstand bringen kann. Ich kann bestätigen, dass das geht, denn hab einen wegen vergleichbaren Mists (eine Log-Datei füllte die Festplatte vollständig) stehenden Server schon "repariert".

Drittens B:

Wer zum Teufel übergibt an eine Funktion, die zwei Zahlen und zwei boleansche Werte zur Bestimmung der Skalierungsmethode braucht, einen (auch noch falsch notierten!) String aus dem dann wieder die eigentlichen Informationen teuer und fehlerträchtig "herausgelutscht" werden müssen?

Aber mein Zeug ist "zu kompliziert"...

Richtig macht man das, wenn man einen Ordner für Thumnails hat, darin die verkleinerten Bilder. Die können beim Upload oder beim ersten Abruf genau einmal erzeugt und ab dann ohne große Umstände als statische Ressource ausgeliefert werden. Dass kann sogar ein als 404er-Error-Ressource in der .htaccess definiertes Skript im/für das Verzeichnis tun (genauer: versuchen.) "It's so simpel and strong..."