BB-Code [img]-Tag - Bildgröße limitieren? - knifflig :)

siob

Mitglied
Wunderschönen Freitag wünsch ich euch allen,
folgendes Problem hätte ich bei dem mir so langsam die Puste ausgeht.

Ich möchte BB-Code in meinem News-Script haben. Also ganz normal durch:
PHP:
$text = preg_replace("/\[img\](.*)\[\/img\]/iUms","<img src=\"\\1\">",$text);
Soweit ganz gut, nun möchte ich aber, dass das Bild verkleinert wird, falls es breiter als mein div-Frame ist. Angenommen mein div-Frame hat die Breite 300 Pixel, das Orginalbild die Breite 400 Pixel; dann soll das Orginalbild beim einfügen durch ...
HTML:
<img src="..." width="300px">
.. verkleinert werden. Ist das Bild jedoch kleiner oder gleich 300 Pixel, dann soll es in Orginalmaßen eingefügt werden.
Also dann einfach:
HTML:
<img src="...">

Für das Resizen, bzw. das Überprüfen ob das Bild die richtige Größe hat, hab ich mir folgende Funktion geschrieben:
PHP:
  function resizeimg() {
  
  $size = getimagesize("...");
  if ($size[0] > 300) { echo "...' width='300px'>"; }
  elseif ($size[0] <= 300) { echo "<img src='...'>"; } }

Aber wie pack ich jetzt meine Funktion und die BB-Code zusammenn? - Weil es muss ja erst geguckt werden, wie groß das Bild ist, bevor der img-Tag ersetzt wird.

Irgendwelche Ideen? Wäre echt lieb von euch :)
- Verzweifle hier nämlich gerade kläglich.

Gruß
siob
 
Zuletzt bearbeitet:
Wenn ich richtig annehme ist in $text [img]image url[/img]?

Ich weis nicht ob es funktioniert:
PHP:
<?php
function imageBBToHtml($text, $maxWidth)
{
        $imageUrl = substr($text, 6, strlen($text)-8);
        $imgTag = "<img src='". $imageUrl ."'";
        $size = getimagesize($imageUrl);
 
        if ($size[0] > $maxWidth)
                $imgTag .= " width='". $maxWidth ."'>";
        else
                $imgTag .= ">";
 
        return $imgTag;
}
?>
 
Zuletzt bearbeitet:
Eine gute Lösung wäre mit Javascript...

gib am besten den Bilder eine class mit, und mittels JavaScript kannst du beim Laden der Seite alle Bilder dieser class auf größe überprüfen, und wenn nötig, resizen...

hab ich mal wo gesehen/gefunden...
 
Ja aber funktioniert nur beim aktivierten Javascript und das sollte nicht genügen ;-)
In dem oberen Post ist ja auch eine Lösung mit css angegeben.

mfg
 
Zuletzt bearbeitet:
Soweit ich weiss ist das die einzig beste Lösung. Weil wenn du Bilder von anderen Hosts verknüpfst, können wohl massive Ladezeiten auftreten.

Oder aber, du lädst die bilder, beim anlegen eines Datensatzes, auf deinen Space, dann hast du die Ladezeiten nur einmalig beim Speichern... und anschliessend kannst du mittels getimagesize() die Größen überprüfen...

mir würde sonst nichts gutes einfallen!
 
Zurück