Image verkleinert ausgeben(Resize)

Re: Image Verkleiner ausgeben(Resize)

Hmmmm :rolleyes:

Funktioniert irgendwie immernoch nicht.

Jetzt wird folgender Fehler ausgegeben:

Warning: getimagesize(Array): failed to open stream: No such file or directory in /usr/export/www/vhosts/funnetwork/hosting/mrnetwork/index.php on line 28



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

Du musst wissen, dass die Ausgaben beider Funktionen unterschiedlich sind. Während die preg_match()-Funktion ein eindimensionales Array mit den Treffern der ersten Übereinstimmung zurückliefert, liefert die preg_match_all()-Funktion ein mehrdimensionales Array mit allen Treffern zurück.
 
Re: Image Verkleiner ausgeben(Resize)

Es wird immer nur das erste Bild ausgegeben ;)

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

Schau dir mal mithilfe der var_dump()- oder print_r()-Funktion die Struktur der zurückgegebenen Arrays an.
 
Re: Image Verkleiner ausgeben(Resize)

Bei diesem Quelltext

PHP:
[ img]img/bigbang.jpg[ /img]

Bild 2 ;)

[ img]img/logo.gif[ /img]

Wird nur das erste Bild ausgegeben , dass zweite und der Text nicht

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

Ich hab galub ich den Fehler mein Suchmuster ist zu gierig aber wie mach ich es richtig

PHP:
preg_match_all('#\[img\](.+)\[/img\]#is',  $var, $matches, PREG_PATTERN_ORDER);
 
Re: Image Verkleiner ausgeben(Resize)

Vileicht so :rolleyes:
PHP:
preg_match_all('#\[img\](.+)\[/img\]#is',  $var, $matches, Ungreedy);
Aber dann kommt folgender Fehler:

Warning: preg_match_all() expects parameter 4 to be long, string given in /usr/export/www/vhosts/funnetwork/hosting/123/index.php on line 22
 

Neue Beiträge

Zurück