tafkat: Thumbnails Zeichenkette

Servus, guten abend.
Ich arbeite gerade an einem simplen Modul für meine HP und möchte Bilder skalieren jedoch ohne GDLib.
Für z.B. eine Newsseite benötige ich kleine vorschaubilder die via Link auf das Quellbild verweisen.
Die eingabe des Thumbnails würde ich gerne via BB-Code eingeben:
[thumb]http://www.url.tld/bild.jpg[/thumb]
Das Bild selbst wird mittels php-code skaliert was soweit kein Problem darstellt.

  
function mkThumb($pic) {  
 $h_max = 122;  
 $w_max = 183;  
 list($w, $h) = getimagesize($pic);  
 $attrib = ($w>$h ? 'width="'. $w_max. '"' : 'height="'. $h_max. '"');  
 echo '<a href="$1" target="_blank"><img src="', $pic, '" '. $attrib. '"></a>';  
}  

Mein Problem ist es, wie ich diese Funktion via BB-Code einbinden kann.
(Kenntlich gemacht duch die ????)

  
$entry = preg_replace('/\[thumb\](.*?)\[\/thumb\]/', ???????' ,$entry);  

Hat da vielleicht jemand eine Idee oder Beispiel wie man das bewerkstelligen könnte ?

  1. function mkThumb($pic) {
    $h_max = 122;
    $w_max = 183;
    list($w, $h) = getimagesize($pic);
    $attrib = ($w>$h ? 'width="'. $w_max. '"' : 'height="'. $h_max. '"');
    echo '<a href="$1" target="_blank"><img src="', $pic, '" '. $attrib. '"></a>';
    }
    $entry = preg_replace('/[thumb](.*?)[/thumb]/', 'mkThumb($1)' ,$entry);

      
    So sollte das glaube ich funktionieren. Schöner Stil ist das ganze aber nicht, es wäre sehrviel effizienter, wenn du einmal ein Thumbnail erstellen würdest. Das spart dir auch einiges an Traffic, wenn du viel Verkehr auf der Seite hast.  
    Wenn du GD nicht verwenden willst probier doch mal ImageMagick aus, falls das bei dir verfügbar ist.  
      
    Gruß  
    Moe
    
    1. Genau das haut leider nicht wirklich hin.
      Die Zeichenkette bzw. die URL die ich eingebe wird im frontend eben mit mkThumb(http:/...usw. ) wieder ausgegeben und nicht ersetzt.

      Aber, ich danke natürlich für den Beitrag und den Tip.

      function mkThumb($pic) {
      $h_max = 122;
      $w_max = 183;
      list($w, $h) = getimagesize($pic);
      $attrib = ($w>$h ? 'width="'. $w_max. '"' : 'height="'. $h_max. '"');
      echo '<a href="$1" target="_blank"><img src="', $pic, '" '. $attrib. '"></a>';
      }
      $entry = preg_replace('/[thumb](.*?)[/thumb]/', 'mkThumb($1)' ,$entry);

      
      >   
      > So sollte das glaube ich funktionieren. Schöner Stil ist das ganze aber nicht, es wäre sehrviel effizienter, wenn du einmal ein Thumbnail erstellen würdest. Das spart dir auch einiges an Traffic, wenn du viel Verkehr auf der Seite hast.  
      > Wenn du GD nicht verwenden willst probier doch mal ImageMagick aus, falls das bei dir verfügbar ist.  
      >   
      > Gruß  
      > Moe
      
      1. Mahlzeit,

        , 'mkThumb($1)' ,$entry);

        ^           ^

        Da mit wird die Zeichenkette als String an die Funktion übergeben. Du willst die ' weglassen.

      2. Also wird schon das http://usw an mkThumb übergeben oder?
        Dann kannst du ja in mkThumb nochmal ein preg_replace() auf den eingegebenen String anwenden, so dass genau das rauskommt was du willst.

        Moe