php 完美的批量生成缩略图代码

*/
$dir =’/www.111cn.net’;

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<HTML>
 <HEAD>
  <meta http-equiv=”Content-Type” content=”text/html;
charset=gb2312″>
  <TITLE>生成缩略图</TITLE>
</HEAD>
 <BODY>
<?php
$c =
array(‘dir’=>’./images’,’newdir’=>’./thumb’,’w’=>’200′,’h’=>’200′);
//只处理文件名中含有small的文件,如果处理所有文件,请设置为 ‘.’
$only = ‘.’;

 if(strstr($src, “http://”) && !strstr($src,
$_SERVER[‘HTTP_HOST’])){
  $src = getimg($src);
 } 

//如果不希望覆盖已经存在的图片 将此行设为0;
$over = 1;

 function getimg($l1){
  $l2 = $dir.’/’.substr(md5($l1),10,10).strrchr($l1,”.”);
  //文件存在,直接返回地址
  if(file_exists($l2)){   
   //echo “exits…”;
   return $l2;
  }
  
  //开始获取文件,并返回新路径 
  $img = file_get_contents($l1);     
  if($img){
   if(!is_dir($dir)){
    @mkdir($dir);
   } 
   savefile($l2, $img);
   //echo “file_get..”;
   return $l2;
  }    
 }
 
 //保存文件(文件, [内容])
 
 function savefile($l1, $l2=”){  
  if(function_exists(file_put_contents)){
   file_put_contents($l1, $l2);
  } else{
   $fp = @fopen($l1, ‘wb’);
   @fwrite($fp, $l2);
   fclose($fp);
  }
 }
 
 
/*

//是否处理GIF图,0为不处理
$regif = 1;

strrchr()
函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符
strstr()
函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回
false。
file_exists 判断文件是否存在,是返回ture或1 否返回false或0
file_get_contents() 函数把整个文件读入一个字符串中。
mkdir 创建目录,成功ture 否false
file_put_contents() 函数把一个字符串写入文件中 与依次调用
fopen(),fwrite() 以及 fclose() 功能一样

 

 本程序是首页判断我们读取地址是网络的还是本地的,如果是本服务器的图片地址就不加处理否则就把远程服务器的图片或文件下载到本地服务器上。
 
*/
 
  
// 本文章原创于www.111cn.net 转载注明出处

if($_GET[‘do’]==’start’){
 $file = array();
 $dir = $_POST[‘dir’];
 $newdir = $_POST[‘newdir’];
 $w = intval($_POST[‘w’]);
 $h = intval($_POST[‘h’]);
 $d = @dir($dir) or die(‘目录不存在!’); 
 $config = “<?php return
array(‘dir’=>'”.$dir.”‘,’newdir’=>'”.$newdir.”‘,’w’=>'”.$w.”‘,’h’=>'”.$h.”‘);
?>”;
 savefile($c, $config); 
 while ($a=$d->read()){
  $type = substr(strrchr($a,”.”),1);
  if($a!==’.’ && $a!==’..’){
   if(is_dir($dir.’/’.$a)){
    $zdir[]=$a;
   } elseif($type==’jpg’ || $type==’gif’ || $type==’bmp’ ||
$type==’png’) {
    if(strstr($a, $only)){
     $file[]=$dir.’/’.$a;
    }
   }   
  }
 }
 $rand = rand(100,999);
 $img = new image($dir, $newdir);
 $img->over = $over;
 $img->regif= $regif;
 echo “<div style=’width:800px’>”;
 foreach ($file as $key){
  $src = $img->reImg($key, $w, $h);
  echo “<div style=’float:left;border:#666666 1px dotted; width:$w
px; height:$h px; padding: 5px; margin:5px;’><img
src=$src?$rand></div>”;
 }
 echo “</div>”;
 die(“<br><br><label> <input name=”go”
type=”button” id=”go” onClick=”location=’index.php'” value=”
www.111cn.net继 续 处 理 新 的 图 片
“></label><br><br>”);
}
?>
 <div style=”clear:both; width:250px; height:110px; border:#006633
1px dashed; padding:5px; font-size:12px; color:#009933″>
 <form name=”form1″ method=”post” action=”?do=start”>
   <label>源目录:
   <input name=”dir” type=”text” id=”dir”
value=”<?=$c[‘dir’]?>”>
</label>
<br><br>
<label>保存到:
<input name=”newdir” type=”text” id=”newdir”
value=”<?=$c[‘newdir’]?>”>
</label>
<br><br>
<label>宽  高:
<input name=”w” type=”text” id=”w” value=”<?=$c[‘w’]?>”
size=”7″ maxlength=”3″>
X
<input name=”h” type=”text” id=”h” value=”<?=$c[‘h’]?>”
size=”7″ maxlength=”3″>
</label>
  <br>
  <br>  
   <label>  
   <input type=”submit” name=”search” id=”search” value=”生 成”>
   </label>  
 </form>
 
</div>
©2008 <a href=”http://www.111cn.net
target=_blank>wbsifan</a>
</BODY>
</HTML>
<?
<?php
//创建目录(目录, [模式])
function mkdirs($l1, $l2 = 0777){
 if(!is_dir($l1)){
  //如果目录不存在,递归建立
  mkdirs(dirname($l1), $l2);  
  return @mkdir($l1, $l2);
 }
 return true;
}