Image verkleinert ausgeben(Resize)

Re: Image Verkleiner ausgeben(Resize)

Hi, Danke jetzt hab ich es Kapiert aber es wird leider immernoch nur das 1. Bild ausgelesen und der Text nicht.

PHP:
[ img]img/banner.gif[ /img]
Das 2. Bild:

[ img]img/bigbang.jpg[ /img]

Ich glaube jetzt liegt es nichtmehr am patern sondern an der Funktion ;)

PHP:
function imageresize($var,$width,$height) 
{
   preg_match_all('#\[ img\](.+)\[ /img\]#U',  $var, $matches); 
   $search = array('[ img]','[ /img]');
   $replace = array('','');
   for($i=0;$i < count($matches);$i++)
   {
      
      $imgsize = getimagesize($matches[1][$i]);
      if($imgsize[0] < $width && $imgsize[1] < $height) 
	  {
	     return  '<img src="'.$matches[1][$i].'" width="'.$imgsize[0].'" wanda="'.count($matches).'">';   
	  }
	  else if($imgsize[0] > $width && $imgsize[1] < $height)
	  {
	     return  '<img src="'.$matches[1][$i].'" width="'.$width.'">';
	  } 
	  else if($imgsize[0] < $width && $imgsize[1] > $height)
	  {
	     return  '<img src="'.$matches[1][$i].'" height="'.$height.'">';
	  } 
      else if($imgsize[0] > $width && $imgsize[1] > $height)
	  {
	     return '<img src="'.$matches[1][$i].'" height="'.$height.'" width="'.$width.'">';
	  }
	}
}
 
Re: Image Verkleiner ausgeben(Resize)

Mittels return verlässt du die Funktion sofort...dadurch wird die Schleife/Funktion bereits beim ersten Bild verlassen.
 
Re: Image Verkleiner ausgeben(Resize)

Hi, vielen Dank funktioniert wunderbar, aber wie kann ich noch machen dass der Text auch noch mitausgeben wird ?
PHP:
function imageresize($var,$width,$height) 
{
   preg_match_all('#\[ img\](.+)\[ /img\]#U',  $var, $matches); 
   $search = array('[ img]','[ /img]');
   $replace = array('','');
   for($i=0;$i <= count($matches);$i++)
   {
      
      $imgsize = getimagesize($matches[1][$i]);
      if($imgsize[0] < $width && $imgsize[1] < $height) 
	  {
	     $return .=  '<img src="'.$matches[1][$i].'" width="'.$imgsize[0].'" wanda="'.count($matches).'">';   
	  }
	  else if($imgsize[0] > $width && $imgsize[1] < $height)
	  {
	     $return .=  '<img src="'.$matches[1][$i].'" width="'.$width.'">';
	  } 
	  else if($imgsize[0] < $width && $imgsize[1] > $height)
	  {
	     $return .=  '<img src="'.$matches[1][$i].'" height="'.$height.'">';
	  } 
      else if($imgsize[0] > $width && $imgsize[1] > $height)
	  {
	     $return .=  '<img src="'.$matches[1][$i].'" height="'.$height.'" width="'.$width.'">';
	  }
	}
	return $return;
}

PS: Wenn ich unten einfach noch

$eturn .= $var¨;

anhänge wird der Text zwar ausgegeben aber erst nach dem alle bilder ausgegebn sind und dass ist ja nicht in meinem Sinne.
 
Re: Image Verkleiner ausgeben(Resize)

Du solltest da mit [phpf]preg_replace[/phpf] arbeiten.... den kompletten String nehmen, die [img]-Tags ersetzen,...und dann alles ausgeben.
 
Re: Image Verkleiner ausgeben(Resize)

Ja, aber dass problem ist wie mach ich dass dann mit den Matches dass die grösse überprüft wird :confused:
 
Re: Image Verkleiner ausgeben(Resize)

Lagere das Replacement in eine weitere Funktion aus.
Dieser übergibst du die URL,Breite und Höhe.... und lässt dir von dieser Funktion den <img>-Code zurückgeben.
 
Re: Image Verkleiner ausgeben(Resize)

hmmm wie meinst du dass jetzt genau :confused:

Wie kann ich denn wenn ich preg_replace verwende die URL herausfinden,
die ich dann mit getimagesize() überprüfe :eek:
 
Re: Image Verkleiner ausgeben(Resize)

Die URL findest du genauso heraus, wie bei preg_match_all() .....das entsprechende Suchmuster kannst du weiterverwenden.
preg_replace() ersetzt im Gegensatz zu preg_match() die Fundstellen durch einen Ersatz(einen String, z.B. aus dem Rückgabewert einer Funktion)
 

Neue Beiträge

Zurück