probleme de fonction

TrX
Eléphanteau du PHP | 14 Messages

25 oct. 2008, 14:16

Bonjour a tous :)
voici une fonction qui selectionne les url d'images des message de mon forum afin de les redimensionner si elles sont trop grandes :
  function prevpost($txt, $pmess, $i, $bol) {
 if (preg_match('/\[img=/', $txt)) {
 
 $txt = strstr($txt, '[img=');
$pos = strpos($txt, ']');
$img[$i]=substr($txt, 5, $pos-5);                
list($width, $height) = getimagesize($img[$i]); 
if ($width>665){
$extension = substr( $img[$i], -3 );
$extension = strtolower( $extension );
switch ( $extension ) {
    case "jpg":
    case "peg":
        $img_src_resource = imagecreatefromjpeg( $img[$i] );
        break;
    case "gif":
        $img_src_resource = imagecreatefromgif( $img[$i]);
        break;
    case "png":
        $img_src_resource = imagecreatefrompng( $img[$i] );
        break;
    case "bmp":
        $img_src_resource = imagecreatefrombmp( $img[$i] );
        break;
    default:
        echo "L'image n'est pas dans un format reconnu. Extensions autorisées : jpg/jpeg, gif, png, bmp";
        break;
}

 
$new_width = 665;  
$new_height = 665/$width * $height;
 $img_dst_resource = imagecreatetruecolor($new_width, $new_height);
//$imge = imagecreatefromjpeg($img[$i]);  
imagecopyresampled( $img_dst_resource, $img_src_resource, 0, 0, 0, 0, $new_width, $new_height, $width, $height);  
  if ($bol=="1") {  
      if ($dh = opendir('pix/img')) {
      $k=0;
       while (($filea = readdir($dh)) !== false) {
         if ($filea!= "."  && $filea!= ".." && $filea!= "Thumbs.db"){
          $k++;
          }
          }
          }
       switch ( $extension ) {
    case "jpg":
    case "peg":
       $img_dst_chemin="pix/img/img$k.jpg";
 imagejpeg( $img_dst_resource, $img_dst_chemin, 100 );
        break;
    case "gif":
         $img_dst_chemin="pix/img/img$k.gif";
 imagegif( $img_dst_resource, $img_dst_chemin, 100 );
      break;
    case "png":
         $img_dst_chemin="pix/img/img$k.png";
 imagepng( $img_dst_resource, $img_dst_chemin, 100 );
      break;
   case "bmp":
        $img_dst_chemin="pix/img/img$k.bmp";
 imagebmp( $img_dst_resource, $img_dst_chemin, 100 );
       break;
   }
} else {
if ($dh = opendir('pix/temp')) {
      $k=0;
       while (($filea = readdir($dh)) !== false) {
         if ($filea!= "."  && $filea!= ".." && $filea!= "Thumbs.db"){
          $k++;
          }
          }
          }
       switch ( $extension ) {
    case "jpg":
    case "peg":
       $img_dst_chemin="pix/temp/img$i.jpg";
 imagejpeg( $img_dst_resource, $img_dst_chemin, 100 );
        break;
    case "gif":
         $img_dst_chemin="pix/temp/img$i.gif";
 imagegif( $img_dst_resource, $img_dst_chemin, 100 );
      break;
    case "png":
         $img_dst_chemin="pix/temp/img$i.png";
 imagepng( $img_dst_resource, $img_dst_chemin, 100 );
      break;
   case "bmp":
        $img_dst_chemin="pix/temp/img$k.bmp";
 imagebmp( $img_dst_resource, $img_dst_chemin, 100 );
       break;
   }
}
$pmess = str_replace($img[$i], $img_dst_chemin, $pmess);

}
if ($bol==1 && width<=665) {
if ($dh = opendir('pix/img')) {
      $k=0;
       while (($filea = readdir($dh)) !== false) {
         if ($filea!= "."  && $filea!= ".." && $filea!= "Thumbs.db"){
          $k++;
          }
          }
          }
          switch ( $extension ) {
    case "jpg":
    case "peg":
         $img_dst_chemin="pix/temp/img$k.jpg";
copy($img[$i], $img_dst_chemin);
        break;
    case "gif":
        $img_dst_chemin="pix/temp/img$k.gif";
 copy($img[$i], $img_dst_chemin);
        break;
    case "png":
        $img_dst_chemin="pix/temp/img$k.png";
copy($img[$i], $img_dst_chemin);
        break;
    case "bmp":
       $img_dst_chemin="pix/temp/img$k.bmp";
 copy($img[$i], $img_dst_chemin);
        break;
   
}
$pomess = str_replace($img[$i], $img_dst_chemin, $pmess);

 }
          $txt=substr($txt, $pos+1);  

$i++;
prevpost($txt, $pmess, $i, $bol);
}



}
je voudrai dans un premier temps previsaliser le message avec les image redimensionnées pour ce faire je veux utiliser la fonction comme ceci :

Code : Tout sélectionner

echo '<div class=inputbox><font size = "2" face="verdana" color = "#CA0000">'.$pseudo.'</font><br> <font size = "2" face="verdana" color = "#666666">'.prevpost($postmess ,$postmess , 0, 0).'</font></div>';
et donc je voudrai savoir pourquoi ce n'est pas applicable comme ça
Merci