Bildgröße bei BB Code begrenzen

Begonnen von kn4ck3r, 20. Februar 2009, 15:27:26

Vorheriges Thema - Nächstes Thema

kn4ck3r

Tagchen,
ich habe das Problem, dass ich bei beim Parsen des BB Codes überprüfen möchte, ob das Bild breiter wie 450px ist.
Dazu habe ich mir die Funktion geschrieben:

function prepareimg($src)
{
$size = getimagesize($src);
if($size[0] > 450)
{
       $hoehe = intval($size[1]*450/$size[0]);
return \'\';
}
else
return \'\';   
}

 
Ersetzt wird der BB Code mit preg_replace und da hab ich die Funktion eingebaut.

preg_replace(\"/\\[img\\](.*?)\\[\\/img\\]/si\",prepareimg(\"\\\\1\"),\"[img=http://images.uploaded.to/top_to.jpg]\");

 
Idee dabei war, dass der Pfad übergeben wird, aber preg_replace ersetzt das \\\\1 erst nachdem meine Funktion aufgerufen wurde und somit funktioniert sie nicht. Jemand eine Idee, wie ich an den Pfad der Bilder komme, um ihn meiner Funktion zu übergeben und den entsprechenden HTML Code generieren zu lassen?
greetz KN4CK3R

Powie

Das würde ich niemals tun. Dies hat fatale Folgen für die Performance. Sauber funktioniert dies nur wenn das entsprechende Bild lokal liegt. Wenn das Bild aber hier auf einem remote Server liegt, wird theoretisch, wenn fopen für URLS erlaubt ist, jedesmal wenn das angezeigt werden soll, das Bild auf den Server geholt und aunsgewertet. Dies gibt sicher merkliche Performance Probleme.
Wenn dann würde ich empfehlen dies nur einmal zu tun, in dem Moment wo der Post abgeschickt wird.
Oder liegen die Bilder immer lokal auf dem selben Server?

kn4ck3r

nein, die Bilder liegen auf irgendeinem Server. Habe es mit dem /e Parameter gelöst:

preg_replace(\"/\\[img\\](.*?)\\[\\/img\\]/sie\",\"prepareimg(\'\\\\1\')\",\"[img=http://images.uploaded.to/top_to.jpg]\");

 
Performanceverluste gibt es keine. Wie würdest du so ein Problem denn lösen, wenn dir die Art nicht gefällt?
greetz KN4CK3R

lit-web

Das e ist aber kein Parameter sondern ein modifier.

Taugenichtse die was haben,haben was gegen Habenichtse die was taugen!!!!


all your base are belong to us / Discord