php+jquery在线切图代码[仿dedecms]

 更新时间:2016年11月25日 17:34  点击:2195

php+jquery在线切图代码[防dedecms]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Cropper</title>
  <!-- css -->
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/combo?2.6.0/build/reset-fonts-grids/reset-fonts-grids.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/resize/assets/skins/sam/resize.css" />
  <link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.5.2/build/imagecropper/assets/skins/sam/imagecropper.css" />
  <!-- js -->
  <script type="text/javascript" src="http://yui.yahooapis.com/combo?2.5.2/build/yahoo-dom-event/yahoo-dom-event.js&2.5.2/build/dragdrop/dragdrop-min.js&2.5.2/build/element/element-beta-min.js&2.5.2/build/resize/resize-beta-min.js&2.5.2/build/imagecropper/imagecropper-beta-min.js&2.5.2/build/connection/connection-min.js&2.5.2/build/json/json-min.js"></script>
  
  <style type="text/css">
   a:link, a:visited, a:active{
    color: #000;
    text-decoration: none;
    font-weight: bold;
   }
   
   a:hover{
    color: #fff;
    background-color: #000;
   }
   
   #hd{
    font-size: 2em;
    font-weight: bold;
    text-align: left;
    padding-bottom: 20px;
    border-bottom: 1px solid #ccc;
    margin: 10px 0 10px 0;
   }
   
   #uploadForm, #downloadLink{
    text-align: center;
   }
   
   #imageContainer{
    margin: 20px 0px 20px 0;
   }
   
   #ft{
    margin-top: 10px;
    padding-top: 10px;
    border-top:1px solid #ccc;
    text-align: center;
   }
  </style>
  
  <script type="text/javascript">
   uploader = {
    carry: function(){
     // set form
     YAHOO.util.Connect.setForm('uploadForm', true);
     // upload image
     YAHOO.util.Connect.asyncRequest('POST', 'upload.php', {
      upload: function(o){
       // parse our json data
       var jsonData = YAHOO.lang.JSON.parse(o.responseText);
       
       // put image in our image container
       YAHOO.util.Dom.get('imageContainer').innerHTML = '<img id="yuiImg" src="' + jsonData.image + '" width="' + jsonData.width + '" height="' + jsonData.height + '" alt="" />';
       
       // init our photoshop
       photoshop.init(jsonData.image);
       
       // get first cropped image
       photoshop.getCroppedImage();
      }
     });
    }
   };
      
   photoshop = {
    image: null,
    crop: null,
    //url: null,
    
    init: function(image){
     // set our image
     photoshop.image = image;
     
     // our image cropper from the uploaded image
     photoshop.crop = new YAHOO.widget.ImageCropper('yuiImg');
     photoshop.crop.on('moveEvent', function() {
      // get updated coordinates
      photoshop.getCroppedImage();
     });
    },
    
    getCroppedImage: function(){
     var coordinates = photoshop.getCoordinates();
     var url = 'crop.php?image=' + photoshop.image + '&cropStartX=' + coordinates.left +'&cropStartY=' + coordinates.top +'&cropWidth=' + coordinates.width +'&cropHeight=' + coordinates.height;
     YAHOO.util.Dom.get('downloadLink').innerHTML = '<a href="' + url + '">download cropped image</a>';
    },
    
    getCoordinates: function(){
     return photoshop.crop.getCropCoords();
    }
   };
   
   // add listeners
   YAHOO.util.Event.on('uploadButton', 'click', uploader.carry);
  </script>
 </head>
 <body class="yui-skin-sam">
  <div id="doc4" class="yui-t7">
   <div id="hd">
    AJAX image cropper - YUI-based
   </div>
   
   <div id="bd">
    <form action="upload.php" enctype="multipart/form-data" method="post" name="uploadForm" id="uploadForm">
     Image : <input type="file" name="uploadImage" id="uploadImage" />
     <input type="button" id="uploadButton" value="Upload"/>
    </form>
    
    <div id="imageContainer"></div>
    
    <div id="downloadLink"></div>
   </div>
   
   <div id="ft">
    <a href="http://htmlblog.net">HTML Blog</a>
   </div>
  </div>
 </body>
</html>
上面为index.php文件
根据x,y,来用php重新绘图

<?php
 // get variables
 $imgfile = $_GET['image'];
 $cropStartX = $_GET['cropStartX'];
 $cropStartY = $_GET['cropStartY'];
 $cropW = $_GET['cropWidth'];
 $cropH = $_GET['cropHeight'];

 // Create two images
 $origimg = imagecreatefromjpeg($imgfile);
 $cropimg = imagecreatetruecolor($cropW,$cropH);

 // Get the original size
 list($width, $height) = getimagesize($imgfile);

 // Crop
 imagecopyresized($cropimg, $origimg, 0, 0, $cropStartX, $cropStartY, $width, $height, $width, $height);

 // force download nes image
 header("Content-type: image/jpeg");
 header('Content-Disposition: attachment; filename="'.$imgfile.'"');
 imagejpeg($cropimg);

 // destroy the images
 imagedestroy($cropimg);
 imagedestroy($origimg);
?>

这里是图片上的,

<?php
 
 if(!empty($_FILES["uploadImage"])) {
    // get file name
  $filename = basename($_FILES['uploadImage']['name']);
  
  // get extension
    $ext = substr($filename, strrpos($filename, '.') + 1);
    
    // check for jpg only
    if ($ext == "jpg") {
        // generate unique file name
     $newName = 'images/'.time().'.'.$ext;
     
     // upload files
         if ((move_uploaded_file($_FILES['uploadImage']['tmp_name'], $newName))) {
   
          // get height and width for image uploaded
          list($width, $height) = getimagesize($newName);
          
          // return json data
             echo '{"image" : "'.$newName.'", "height" : "'.$height.'", "width" : "'.$width.'" }';
         }
         else {
             echo '{"error" : "An error occurred while moving the files"}';
         }
    }
    else {
       echo '{"error" : "Invalid image format"}';
    }
 }
?>

php 汉字转换拼音程序

<?php
class pinyin {
    var $data   = array(array("a",-20319),array("ai",-20317),array("an",-20304),array("ang",-20295),array("ao",-20292),array("ba",-20283),array("bai",-20265),array("ban",-20257),array("bang",-20242),array("bao",-20230),array("bei",-20051),array("ben",-20036),array("beng",-20032),array("bi",-20026),array("bian",-20002),array("biao",-19990),array("bie",-19986),array("bin",-19982),array("bing",-19976),array("bo",-19805),array("bu",-19784),array("ca",-19775),array("cai",-19774),array("can",-19763),array("cang",-19756),array("cao",-19751),array("ce",-19746),array("ceng",-19741),array("cha",-19739),array("chai",-19728),array("chan",-19725),array("chang",-19715),array("chao",-19540),array("che",-19531),array("chen",-19525),array("cheng",-19515),array("chi",-19500),array("chong",-19484),array("chou",-19479),array("chu",-19467),array("chuai",-19289),array("chuan",-19288),array("chuang",-19281),array("chui",-19275),array("chun",-19270),array("chuo",-19263),array("ci",-19261),array("cong",-19249),array("cou",-19243),array("cu",-19242),array("cuan",-19238),array("cui",-19235),array("cun",-19227),array("cuo",-19224),array("da",-19218),array("dai",-19212),array("dan",-19038),array("dang",-19023),array("dao",-19018),array("de",-19006),array("deng",-19003),array("di",-18996),array("dian",-18977),array("diao",-18961),array("die",-18952),array("ding",-18783),array("diu",-18774),array("dong",-18773),array("dou",-18763),array("du",-18756),array("duan",-18741),array("dui",-18735),array("dun",-18731),array("duo",-18722),array("e",-18710),array("en",-18697),array("er",-18696),array("fa",-18526),array("fan",-18518),array("fang",-18501),array("fei",-18490),array("fen",-18478),array("feng",-18463),array("fo",-18448),array("fou",-18447),array("fu",-18446),array("ga",-18239),array("gai",-18237),array("gan",-18231),array("gang",-18220),array("gao",-18211),array("ge",-18201),array("gei",-18184),array("gen",-18183),array("geng",-18181),array("gong",-18012),array("gou",-17997),array("gu",-17988),array("gua",-17970),array("guai",-17964),array("guan",-17961),array("guang",-17950),array("gui",-17947),array("gun",-17931),array("guo",-17928),array("ha",-17922),array("hai",-17759),array("han",-17752),array("hang",-17733),array("hao",-17730),array("he",-17721),array("hei",-17703),array("hen",-17701),array("heng",-17697),array("hong",-17692),array("hou",-17683),array("hu",-17676),array("hua",-17496),array("huai",-17487),array("huan",-17482),array("huang",-17468),array("hui",-17454),array("hun",-17433),array("huo",-17427),array("ji",-17417),array("jia",-17202),array("jian",-17185),array("jiang",-16983),array("jiao",-16970),array("jie",-16942),array("jin",-16915),array("jing",-16733),array("jiong",-16708),array("jiu",-16706),array("ju",-16689),array("juan",-16664),array("jue",-16657),array("jun",-16647),array("ka",-16474),array("kai",-16470),array("kan",-16465),array("kang",-16459),array("kao",-16452),array("ke",-16448),array("ken",-16433),array("keng",-16429),array("kong",-16427),array("kou",-16423),array("ku",-16419),array("kua",-16412),array("kuai",-16407),array("kuan",-16403),array("kuang",-16401),array("kui",-16393),array("kun",-16220),array("kuo",-16216),array("la",-16212),array("lai",-16205),array("lan",-16202),array("lang",-16187),array("lao",-16180),array("le",-16171),array("lei",-16169),array("leng",-16158),array("li",-16155),array("lia",-15959),array("lian",-15958),array("liang",-15944),array("liao",-15933),array("lie",-15920),array("lin",-15915),array("ling",-15903),array("liu",-15889),array("long",-15878),array("lou",-15707),array("lu",-15701),array("lv",-15681),array("luan",-15667),array("lue",-15661),array("lun",-15659),array("luo",-15652),array("ma",-15640),array("mai",-15631),array("man",-15625),array("mang",-15454),array("mao",-15448),array("me",-15436),array("mei",-15435),array("men",-15419),array("meng",-15416),array("mi",-15408),array("mian",-15394),array("miao",-15385),array("mie",-15377),array("min",-15375),array("ming",-15369),array("miu",-15363),array("mo",-15362),array("mou",-15183),array("mu",-15180),array("na",-15165),array("nai",-15158),array("nan",-15153),array("nang",-15150),array("nao",-15149),array("ne",-15144),array("nei",-15143),array("nen",-15141),array("neng",-15140),array("ni",-15139),array("nian",-15128),array("niang",-15121),array("niao",-15119),array("nie",-15117),array("nin",-15110),array("ning",-15109),array("niu",-14941),array("nong",-14937),array("nu",-14933),array("nv",-14930),array("nuan",-14929),array("nue",-14928),array("nuo",-14926),array("o",-14922),array("ou",-14921),array("pa",-14914),array("pai",-14908),array("pan",-14902),array("pang",-14894),array("pao",-14889),array("pei",-14882),array("pen",-14873),array("peng",-14871),array("pi",-14857),array("pian",-14678),array("piao",-14674),array("pie",-14670),array("pin",-14668),array("ping",-14663),array("po",-14654),array("pu",-14645),array("qi",-14630),array("qia",-14594),array("qian",-14429),array("qiang",-14407),array("qiao",-14399),array("qie",-14384),array("qin",-14379),array("qing",-14368),array("qiong",-14355),array("qiu",-14353),array("qu",-14345),array("quan",-14170),array("que",-14159),array("qun",-14151),array("ran",-14149),array("rang",-14145),array("rao",-14140),array("re",-14137),array("ren",-14135),array("reng",-14125),array("ri",-14123),array("rong",-14122),array("rou",-14112),array("ru",-14109),array("ruan",-14099),array("rui",-14097),array("run",-14094),array("ruo",-14092),array("sa",-14090),array("sai",-14087),array("san",-14083),array("sang",-13917),array("sao",-13914),array("se",-13910),array("sen",-13907),array("seng",-13906),array("sha",-13905),array("shai",-13896),array("shan",-13894),array("shang",-13878),array("shao",-13870),array("she",-13859),array("shen",-13847),array("sheng",-13831),array("shi",-13658),array("shou",-13611),array("shu",-13601),array("shua",-13406),array("shuai",-13404),array("shuan",-13400),array("shuang",-13398),array("shui",-13395),array("shun",-13391),array("shuo",-13387),array("si",-13383),array("song",-13367),array("sou",-13359),array("su",-13356),array("suan",-13343),array("sui",-13340),array("sun",-13329),array("suo",-13326),array("ta",-13318),array("tai",-13147),array("tan",-13138),array("tang",-13120),array("tao",-13107),array("te",-13096),array("teng",-13095),array("ti",-13091),array("tian",-13076),array("tiao",-13068),array("tie",-13063),array("ting",-13060),array("tong",-12888),array("tou",-12875),array("tu",-12871),array("tuan",-12860),array("tui",-12858),array("tun",-12852),array("tuo",-12849),array("wa",-12838),array("wai",-12831),array("wan",-12829),array("wang",-12812),array("wei",-12802),array("wen",-12607),array("weng",-12597),array("wo",-12594),array("wu",-12585),array("xi",-12556),array("xia",-12359),array("xian",-12346),array("xiang",-12320),array("xiao",-12300),array("xie",-12120),array("xin",-12099),array("xing",-12089),array("xiong",-12074),array("xiu",-12067),array("xu",-12058),array("xuan",-12039),array("xue",-11867),array("xun",-11861),array("ya",-11847),array("yan",-11831),array("yang",-11798),array("yao",-11781),array("ye",-11604),array("yi",-11589),array("yin",-11536),array("ying",-11358),array("yo",-11340),array("yong",-11339),array("you",-11324),array("yu",-11303),array("yuan",-11097),array("yue",-11077),array("yun",-11067),array("za",-11055),array("zai",-11052),array("zan",-11045),array("zang",-11041),array("zao",-11038),array("ze",-11024),array("zei",-11020),array("zen",-11019),array("zeng",-11018),array("zha",-11014),array("zhai",-10838),array("zhan",-10832),array("zhang",-10815),array("zhao",-10800),array("zhe",-10790),array("zhen",-10780),array("zheng",-10764),array("zhi",-10587),array("zhong",-10544),array("zhou",-10533),array("zhu",-10519),array("zhua",-10331),array("zhuai",-10329),array("zhuan",-10328),array("zhuang",-10322),array("zhui",-10315),array("zhun",-10309),array("zhuo",-10307),array("zi",-10296),array("zong",-10281),array("zou",-10274),array("zu",-10270),array("zuan",-10262),array("zui",-10260),array("zun",-10256),array("zuo",-10254));
    function get_one($num){
        if($num>0&&$num<160){
            return chr($num);
        } elseif ($num<-20319||$num>-10247) {
            return '';
        } else {
            for($i=count($this->data)-1;$i>=0;$i--){if($this->data[$i][1]<=$num)break;}
            return $this->data[$i][0];
        }
    }
    function conver($str) {
        $ret="";
        for($i=0;$i<strlen($str);$i++){
            $p=ord(substr($str,$i,1));
            if($p>160){
                $q=ord(substr($str,++$i,1));
                $p=$p*256+$q-65536;
            }
            $ret.=$this->get_one($p).'&nbsp;';
        }
        return $ret;
    }
}
?>

textclass.php

<?php
class CtbClass {
 var $file='list.txt';
 var $index;
 //建立一个文件并写入输入
 function null_write($new)
 {
 $f=fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$new);
  fclose($f);
 }
 // 添加数据记录到文件末端
 function add_write($new) {
  $f=fopen($this->file,"a");
  flock($f,LOCK_EX);
  fputs($f,$new);
  fclose($f);
 }
 // 配合readfile()的返回一起使用,把一行数据转换为一维数组
 function make_array($line) {
  $array = explode("x0E",$line);
  return $array;
 }
 //把为一维数组转换一行数据
 function join_array($line) {
  $array = join("x0E",$line);
  return $array;
 }
 // 返回数据文件的总行数
 function getlines() {
  $f=file($this->file);
  return count($f);
 }
 // 返回下一行的数据记录(备用)
 function next_line() {
  $this->index=$this->index++;
  return $this->get();
 }
 // 返回上一行的数据记录(备用)
 function prev_line() {
  $this->index=$this->index--;
  return $this->get();
 }
 // 返回当前行的数据记录数据较小
 function get() {
  $f=fopen($this->file,"r");
  flock($f,LOCK_SH);
  for($i=0;$i<=$this->index;$i++) {
   $rec=fgets($f,1024);
  }
  $line=explode("x0E",$rec);
  fclose($f);
  return $line;
 }
 // 返回当前行的数据记录数据较大
 function get_big_file() {
  $f=fopen($this->file,"r");
  flock($f,LOCK_SH);
  for($i=0;$i<=$this->index;$i++) {
   $rec=fgets($f,1024*5);
  }
  $line=explode("x0E",$rec);
  fclose($f);
  return $line;
 }
 // 打开数据文件---以一维数组返回文件内容
 function read_file() {
  if (file_exists($this->file)) {
   $line =file($this->file);
  }
 return $line;
 }
 // 打开数据文件---以二维数组返回文件内容
 function openFile() {
  if (file_exists($this->file)) {
   $f =file($this->file);
   $lines = array();
   foreach ($f as $rawline) {
   $tmpline = explode("x0E",$rawline);
   array_push($lines, $tmpline);
   }
  }
  return $lines;
 }
 // 传入一个数组,合并成一行数据,重写整个文件
 function overwrite($array){
  $newline = implode("x0E",$array);
  $f = fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newline);
  fclose($f);
 }
 // 添加一行数据记录到文件末端
 function add_line($array,$check_n=1) {
  $s=implode("x0E",$array);
  $f=fopen($this->file,"a");
  flock($f,LOCK_EX);
  fputs($f,$s);
  if ($check_n==1) fputs($f,"n");
  fclose($f);
 }
 // 插入一行数据记录到文件最前面
 function insert_line($array) {
  $newfile = implode("x0E",$array);
  $f = fopen($this->file,"r");
  flock($f,LOCK_SH);
  while ($line = fgets($f,1024)) {
   $newfile .= $line;
  }
  fclose($f);
  $f = fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newfile);
  fclose($f);
 }
 // 更新所有符合条件的数据记录,适用于每行字节数据较大的情况
 function update($column,$query_string,$update_array) {
  $update_string = implode("x0E",$update_array);
  $newfile = "";
  $fc=file($this->file);
  $f=fopen($this->file,"r");
  flock($f,LOCK_SH);
  for ($i=0;$i<count($fc);$i++) {
   $list = explode("x0E",$fc[$i]);
   if ($list[$column] != $query_string) {
    $newfile = $newfile.chop($fc[$i])."n";
   } else {
    $newfile = $newfile.$update_string;
   }
  }
  fclose($f);
  $f=fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newfile);
  fclose($f);
 }
 // 更新所有符合条件的数据记录,适用于每行字节数据较小的情况
 function update2($column,$query_string,$update_array) {
  $newline = implode("x0E",$update_array);
  $newfile = "";
  $f = fopen($this->file,"r");
  flock($f,LOCK_SH);
  while ($line = fgets($f,1024)) {
   $tmpLine = explode("x0E",$line);
   if ($tmpLine[$column] == $query_string) {
    $newfile .= $newline;
   } else {
    $newfile .= $line;
   }
  }
  fclose($f);
  $f = fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newfile);
  fclose($f);
 }
 // 删除所有符合条件的数据记录,适用于每行字节数据较大的情况
 function delete($column,$query_string) {
  $newfile = "";
  $fc=file($this->file);
  $f=fopen($this->file,"r");
  flock($f,LOCK_SH);
  for ($i=0;$i<count($fc);$i++) {
   $list = explode("x0E",$fc[$i]);
   if ($list[$column] != $query_string) {
    $newfile = $newfile.chop($fc[$i])."n";
   }
  }
  fclose($f);
  $f=fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newfile);
  fclose($f);
 }
 // 删除所有符合条件的数据记录,适用于每行字节数据较小的情况
 function delete2($column,$query_string){
  $newfile = "";
  $f = fopen($this->file,"r");
  flock($f,LOCK_SH);
  while ($line = fgets($f,1024)) {
   $tmpLine = explode("x0E",$line);
   if ($tmpLine[$column] != $query_string) {
    $newfile .= $line;
   }
  }
  fclose($f);
  $f = fopen($this->file,"w");
  flock($f,LOCK_EX);
  fputs($f,$newfile);
  fclose($f);
 }
 //取得一个文件里某个字段的最大值
 function get_max_value($column) {
  $tlines = file($this->file);
  for ($i=0;$i<=count($tlines);$i++) {
   $line=explode("x0E",$tlines[$i]);
   $get_value[]=$line[$column];
  }
  $get_max_value = max($get_value);
  return $get_max_value;
 }
 
 // 根据数据文件的某个字段是否包含$query_string进行查询,以二维数组返回所有符合条件的数据
 function select($column, $query_string) {
  $tline = $this->openfile();
  $lines = array();
  foreach ($tline as $line) {
   if ($line[$column] == $query_string) {
    array_push($lines, $line);
   }
  }
  return $lines;
 }
 // 功能与function select()一样,速度可能略有提升
 function select2($column, $query_string) {
  if (file_exists($this->file)) {
   $tline = $this->read_file();
   foreach ($tline as $tmpLine) {
    $line = $this->make_array($tmpLine);
    if ($line[$column] == $query_string) {
     $lines[]=$tmpLine;
    }
   }
  }
  return $lines;
 }
 // 根据数据文件的某个字段是否包含$query_string进行查询,以一维数组返回第一个符合条件的数据
 function select_line($column, $query_string) {
  $tline = $this->read_file();
  foreach ($tline as $tmpLine) {
   $line = $this->make_array($tmpLine);
   if ($line[$column] == $query_string) {
    return $line;
    break;
   }
  }
 }
 // select next/prev line(next_prev ==> 1/next, 2/prev) by cx
 function select_next_prev_line($column, $query_string, $next_prev) {
  $tline = $this->read_file();
  $line_key_end = count($tline) - 1;
  $line_key = -1;
  foreach ($tline as $tmpLine) {
   $line_key++;
   $line = $this->make_array($tmpLine);
   if ($next_prev == 1) { // next?
    if ($line[$column] == $query_string) {
     if ($line_key == 0) {
      return 0;
     } else {
      $line_key_up = $line_key - 1;
      return $up_line;
     }
    } else {
     $up_line = $line;
    }
   } elseif ($next_prev == 2) { // prev?
    if ($line[$column] == $query_string) {
     if ($line_key == $line_key_end) {
      return 0;
     } else {
      $line_key_down = $line_key + 1;
      break;
     }
    }
   } else {
    return 0;
   }
  }
  $down_line = $this->make_array($tline[$line_key_down]);
  return $down_line;
 }

}

$file=fopen('list.txt',"a+");
if($file == FALSE)exit('<font color=red>无法创建或者打开list.txt</font>');

function __urljudge($url){
 $suffixes="com|net|org|gov|biz|com.tw|com.hk|com.ru|net.tw|net.hk|net.ru|info|cn|com.cn|net.cn|org.cn|gov.cn|mobi|name|sh|ac|la|travel|tm|us|cc|tv|jobs|asia|hn|lc|hk|bz|com.hk|ws|tel|io|tw|ac.cn|bj.cn|sh.cn|tj.cn|cq.cn|he.cn|sx.cn|nm.cn|ln.cn|jl.cn|hl.cn|js.cn|zj.cn|ah.cn|fj.cn|jx.cn|sd.cn|ha.cn|hb.cn|hn.cn|gd.cn|gx.cn|hi.cn|sc.cn|gz.cn|yn.cn|xz.cn|sn.cn|gs.cn|qh.cn|nx.cn|xj.cn|tw.cn|hk.cn|mo.cn|org.hk";
 if(!eregi("^(www.)?([A-Za-z0-9-])+.($suffixes)$",$url)){
  echo "<script language='javascript'>alert('您输入的网址不符合规格,请重新输入!');</script>";
  exit;
 }else {return $url;}
}

function get_real_ip(){
 $ip=false;
 if(!empty($_SERVER["HTTP_CLIENT_IP"])){
  $ip = $_SERVER["HTTP_CLIENT_IP"];
 }
 if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
  $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
  if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
  for ($i = 0; $i < count($ips); $i++) {
   if (!eregi ("^(10|172.16|192.168).", $ips[$i])) {
    $ip = $ips[$i];
    break;
   }
  }
 }
 return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}

$ip=get_real_ip();

$text_class=new CtbClass();

$date=mktime (date(H)-24, date(i), date(s), date(m), date(d), date(Y));

$history=$text_class->openFile();
for ($i=0;$i<count($history);$i++){
 if ($history[$i][2] < $date){
  $text_class->delete2(2,$history[$i][2]);
 }
}
?>

function del($name) {
  if (!is_dir($name)) {
   return @unlink($name);
  } else {
   $dir = opendir($name);
   while( $file = readdir( $dir ) ) {
    if (($file=='.')||($file=='..')) continue;
    if (is_dir($name.'/'.$file)) $this->del($name.'/'.$file);
    else echo basename($file), @unlink($name.'/'.$file) ? ' Success!' : ' False.', '<br />';
   }
  closedir($dir);
  }
  return @rmdir($name);
 }

php取得文件扩展名

function GetFiletype($filename){
 $filer=explode(".",$filename);
 $count=count($filer)-1;
 return strtolower(".".$filer[$count]);
}


<?php
require_once("include/upload.class.php");
if($_POST["button"])
{
        //print_r($_FILES);
        //多个上传
        //$upload = new TTRUpload($_FILES,"ANY");//同下

        $upload = new TTRUpload(array($_FILES["file1"],$_FILES["file2"],$_FILES["file3"],$_FILES["file4"]),"ANY");

        //单个上传
        //$upload = new TTRUpload($_FILES["file1"]);
        $upload->upload();
        echo $upload->getUploadFileName();
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <input type="file" name="file1" id="file1" />
  <br />
  <input type="file" name="file2" id="file2" />
  <br />
  <input type="file" name="file3" id="file3" />
  <br />
  <input type="file" name="file4" id="file4" />
  <br />
  <input type="submit" name="button" id="button" value="Submit" />
</form>
</body>
</html>

<?php
class TTRUpload extends Error
{
        const filesize=81200000;
        private $uploadpath="uploadfile/";
        private $savepath=null;
        private $uploadfilename=null;                                //单个文件为文件名,批量文件为xxxx|xxxx格式,请注意
        private $ext=array("jpg","gif","png");
        private $error=null;
        private $file=null;       
        private $uploadtype=null;
        private $filename=null;
       
        //构造函数,$type:ONE单个上传 ANY批量上传;
        public function __construct($file,$type="ONE")
        {
                if($type!="ONE" && $type!="ANY")
                {
                        echo "<script language='javascript'>alert('初始化请选择ONE或者ANY')</script>";
                        exit;
                }
                $this->uploadtype=$type;
                $this->file=$file;
        }
       
        private function createFileName()
        {
                return $this->filename="TTR_".time().$this->getRandomN(4);
        }
               
        private function getUploadPath()
        {
                if(substr($this->uploadpath,-1,1)!="/")
                {
                        $this->savepath=$this->uploadpath."/".date("Ym");
                }else{
                        $this->savepath=$this->uploadpath.date("Ym");
                }
                $this->savepath=$this->getFolder($this->savepath);
                return true;
        }
       
        private function getFileExt($tempfilename)
        {
                return end(explode(".",$tempfilename));
        }
       
        private function getExt()
        {
                if(in_array(strtolower($this->getFileExt($tempfilename)),$this->ext))
                {
                        return true;
                }else{
                        return false;       
                }
        }
       
        private function getFolder($folder)
        {
                if(!is_dir($folder))
                {
                        mkdir($folder);
                }
                return $folder."/";
        }
       
       
        public function upload()
        {
                if($this->uploadtype=="ONE")
                {
                       

                        if($this->getExt($this->file["type"]))
                        {
                               
                                parent::errorExt();
                               
                        }else if($this->file["size"]>self::filesize){
                               
                                parent::errorFileSize();
                               
                        }else if(!$this->getUploadPath()){
                               
                                parent::errorUploadPath();
                               
                        }else{
                                $filenametemp=$this->createFileName();
                                $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file["name"]);
                                if(move_uploaded_file($this->file["tmp_name"],$filename))
                                {       
                                        $this->uploadfilename=$filenametemp;
                                        parent::okMoved();                       
                                       
                               
                                }else{
                                        parent::errorMoveUpload();
                                }
                        }
                }else if($this->uploadtype=="ANY"){

                        for($i=0;$i<count($this->file);$i++)
                        {
                       
                                if($this->getExt($this->file[$i]["type"]))
                                {
                                        parent::errorExt();
                                       
                                }else if($this->file[$i]["size"]>self::filesize){
                                       
                                        parent::errorFileSize();
                                       
                                }else if(!$this->getUploadPath()){
                                       
                                        parent::errorUploadPath();
                                       
                                }else{
                                        $filenametemp=$this->createFileName();
                                        $filename=$this->savepath.$filenametemp.".".$this->getFileExt($this->file[$i]["name"]);
                                        if(move_uploaded_file($this->file[$i]["tmp_name"],$filename))
                                        {       
                                                $str.=$filenametemp."|";
                                               
                                        }else{
                                                parent::errorMoveUpload();
                                        }
                                       
                                }
                               
                        }
                        $this->uploadfilename=substr($str,0,strlen($str)-1);       
                        parent::okMoved();
                }
        }
       
        public function getUploadFileName()
        {
                return $this->uploadfilename;
        }
       
        public function setUploadPath($path)
        {
                $this->uploadpath=$path;
        }
       
       
        private function getRandomN($n)
        {
                if ($n < 1 || $n>10)  return "";
       
                $ary_num= array(0,1,2,3,4,5,6,7,8,9);
                $return ="";
                for ($i=0;$i<$n;$i++)
                {
                        $randn = rand(0,9-$i);
                        $return .= $ary_num[$randn];
                        $ary_num[$randn] = $ary_num[9-$i];
                }
                return $return;
        }

       
       
        public function __destruct()
        {
                $this->uploadfilename=null;
                $this->uploadtype=null;
                $this->file=null;
                $this->savepath=null;
        }
       
}

class Error
{
        public static function errorFileSize()
        {
                echo "超出最大上传限制";
        }
       
        public static function errorExt()
        {
                echo "此类文件不允许上传";
        }
       
        public static function errorUploadPath()
        {
                echo "上传路径不正确";
        }
       
        public static function errorMoveUpload()
        {
                echo "上传失败";
        }
       
        public static function okMoved()
        {
                echo "上传成功!";
        }
       
        public static function okArrayMoved()
        {
                echo "上传成功!";
        }
}

[!--infotagslink--]

相关文章

  • jquery实现加载更多"转圈圈"效果(示例代码)

    这篇文章主要介绍了jquery实现加载更多"转圈圈"效果,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-11-10
  • 自己动手写的jquery分页控件(非常简单实用)

    最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
  • jQuery+jRange实现滑动选取数值范围特效

    有时我们在页面上需要选择数值范围,如购物时选取价格区间,购买主机时自主选取CPU,内存大小配置等,使用直观的滑块条直接选取想要的数值大小即可,无需手动输入数值,操作简单又方便。HTML首先载入jQuery库文件以及jRange相关...2015-03-15
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • jQuery实现非常实用漂亮的select下拉菜单选择效果

    本文实例讲述了jQuery实现非常实用漂亮的select下拉菜单选择效果。分享给大家供大家参考,具体如下:先来看如下运行效果截图:在线演示地址如下:http://demo.jb51.net/js/2015/js-select-chose-style-menu-codes/具体代码如...2015-11-08
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • jquery实现的伪分页效果代码

    本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • Jquery Ajax Error 调试错误的技巧

    JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息。在没给大家介绍正文之前先给分享Jquery中AJAX参...2015-11-24
  • jQuery 2.0.3 源码分析之core(一)整体架构

    拜读一个开源框架,最想学到的就是设计的思想和实现的技巧。废话不多说,jquery这么多年了分析都写烂了,老早以前就拜读过,不过这几年都是做移动端,一直御用zepto, 最近抽出点时间把jquery又给扫一遍我也不会照本宣科的翻译...2014-05-31
  • jQuery页面加载初始化常用的三种方法

    当页面打开时我们需要执行一些操作,这个时候如果我们选择使用jquery的话,需要重写他的3中方法,自我感觉没什么区 别,看个人喜好了,第二种感觉比较简单明了: 第一种: 复制代码 代码如下: <script type="text/javas...2014-06-07
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • jquery中常用的SET和GET$(”#msg”).html循环介绍

    复制代码 代码如下: $(”#msg”).html(); //返回id为msg的元素节点的html内容。 $(”#msg”).html(”new content“); //将“new content” 作为html串写入id为msg的元素节点内容中,页面显示粗体的new content $(”...2013-10-13
  • jquery获取div距离窗口和父级dv的距离示例

    jquery中jquery.offset().top / left用于获取div距离窗口的距离,jquery.position().top / left 用于获取距离父级div的距离(必须是绝对定位的div)。 (1)先介绍jquery.offset().top / left css: 复制代码 代码如下: *{ mar...2013-10-13
  • jQuery Mobile开发中日期插件Mobiscroll使用说明

    这篇文章主要介绍了jQuery Mobile开发中日期插件Mobiscroll使用说明,需要的朋友可以参考下...2016-03-03
  • jQuery实现切换页面过渡动画效果

    直接为大家介绍制作过程,希望大家可以喜欢。HTML结构该页面切换特效的HTML结构使用一个<main>元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-loading-bar是进行ajax加载时的loading进...2015-10-30