简单php 图片上传代码

 更新时间:2016年11月25日 16:06  点击:1569

简单php 图片上传代码 php 上传图片代

<?php

$zpname=addslashes(isset($_POST['zpname'])?$_POST['zpname']:'');
$zpurl=isset($_POST['zpurl'])?$_POST['zpurl']:'';
$zpsay=addslashes(isset($_POST['zpsay'])?$_POST['zpsay']:'');
$blueidea=isset($_POST['blueidea'])?$_POST['blueidea']:'';
$up_path="../zp/";
$up_size=100000;
$up_name=md5(date("Y:m:d H:i:s"));
$up_type=$_FILES['file']['type'];
$up_exten="start:image/gifimage/pjpegimage/x-png";
echo $up_type;
echo(strrpos($up_exten,$up_type));
//exit();
//=$up_wh['mime'];
$up_sava='';
//echo($_FILES['file']['size']);
//echo($_FILES['file']['type']);
//exit();

if($zpname=="" || $zpname>50){
 echo("<script>alert('作品名称不能为空或大于50个字符!');history.back();</script>");
 exit();
 }
if(!ereg("^(http|https|ftp)\://((([a-zA-Z0-9\-]+\.){1,}[a-zA-Z]{2,4})|(localhost))(:[0-9]+){0,1}(/[a-zA-Z0-9\-\_\,\./\+&amp;%\$#\=~]+)*$",$zpurl)){
 echo("<script>alert('作品地址URL不合法!');history.back();</script>");
 exit();
 }
if($zpsay=="" || $zpsay>500){
 echo("<script>alert('作品简介不能为空或大于500个字符!');history.back();</script>");
 exit();
 }
 if(strrpos($up_exten,'image/x-png')){
  $up_sava=$up_path.$up_name.'.png';
 }
 if(strrpos($up_exten,'image/pjpeg')){
  $up_sava=$up_path.$up_name.'.jpg';
 }
 if(strrpos($up_exten,'image/gif')){
  $up_sava=$up_path.$up_name.'.gif';
 }
 if($up_sava==''){
  echo("<script>alert('对不起,你上传的类型不对,只允许上传 .gif .jpg .png');history.back();</script>");
  exit();
 }
if($_FILES['file']['size']>$up_size){
 echo("<script>alert('上传文件不能大于100K');history.back();</script>");
 exit();
}

/*print_r($up_wh['mime']);
exit();
if($up_wh[0]>300 || $up_wh>400 || $up_wh[0]<93 || $up_wh<63){
 echo("<script>alert('图片宽度93-300之间,高度400-63之间');history.back();</script>");exit();
}
*/
if(move_uploaded_file($_FILES['file']['tmp_name'],$up_sava)){
  up_insert($zpname,$zpurl,$zpsay,$blueidea,$up_name.'.gif');
  echo("<script>alert('上传成功');location='".$_SERVER['HTTP_REFERER']."';</script>");
 }else{
  echo("<script>alert('未知错误');history.back();</script>");
 }
function up_insert($zpname,$zpurl,$zpsay,$blueidea,$up_filename){
 $up_sava="zp/".$up_filename;
  connect();
 mysql_query($sql) or die('Insert into data fail:'.mysql_error());
}
?>

4.per正则函数
    1.preg_grep函数
        preg_grep(pattern,array input);
        输入数组input中寻找匹配模式pattern的字串,并将所有的匹配字符串返回。返回值就是所有匹配的字符串组成的数组。
    2.preg_match函数
        preg_match(pattern,string subject,[array matches])
        该函数在subject字符串中寻找匹配pattern的字符串。如果找到则返回一个非零值,否则返回零值。如果选用了可选项matches,那么匹配的字符串将被放到第一个元素的位置,可以用$matches[0]来读取,圆括号匹配的结果也按顺序放在这个数组中,第一个是$matches[1],第二个是$matches[2],依次类推。
    3.preg_match_all函数
        preg_match_all(pattern,subject,array matches,[int order])
        该函数在subject字符串中寻找匹配pattern的互不重叠的文本,找到了匹配的文本则返回匹配文本的个数,否则返回0。匹配文本被放在二维数组matches中,matches[0]中存放的是所有符合的字符串。各种嵌入的子模式匹配的结果依次放在数组matches[1]~[n]中。
        order参数可选,可取的值为PREG_PATTERN_ORDER和PREG_SET_ORDER。
    4.preg_replace函数
        preg_replace(pattern,replacement,subject,[int limit])
        该函数将subject中符合pattern模式的部分替换成replacement,返回值类型和subject类型一样,如果有替换,则返回替换后的值,反之则返回原来的值。
        参数可以是数组也可以是变量,有几种情况:
            <1>如果subject参数是数组类型。函数对每一个数组元素进行替换操作;
            <2>如果pattern是数组则函数根据每一个pattern中的类型进行替换;
            <3>如果pattern和replacement都是数组,则按两个数组中的元素对应完成替换;
            <4>如果replacement中的元素个数少于pattern中的元素个数。那么不够的部分将有空字符串来代替。
    5.preg_split函数
        preg_split(pattern,subject,[int limit][flages])
        该函数以pattern定义的模式为分隔符将subject字符串分隔为若干个部分,返回数组,其中存放被分隔后的字符串。limit可限制返回字符串的数目,如果设置为-1表示对返回的字符串数目不加任何限制。flags也是可选项,其有两个值:PREG_SPLIT_NO_EMPTY设定函数不返回空字符串,PERG_SPLIT_DELIM_CAPTURE,该选项设定pattern中的嵌入子模式也会被函数匹配。


deleteDir($dir) //这段删除文件和目录的代码可以放在win lin u系统删除,
{
if (rmdir($dir)==false && is_dir($dir)) {
 if ($dp = opendir($dir)) {
  while (($file=readdir($dp)) != false) {
   if (is_dir($file) && $file!='.' && $file!='..') {
    deleteDir($file);
   } else {
    unlink($file);
   }
  }
  closedir($dp);
 } else {
  exit('Not permission');
 }

}
下面再来一种删除目录与文件的方法,不过这种只能在win下执行了.
function del_dir($dir)
{
if(strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
    $str = "rmdir /s/q " . $dir;
} else {
    $str = "rm -Rf " . $dir;
}
}

一,文章列表问题:
  
  在数据库中创建字段,记录文件名,每生成一个文件,将自动生成的文件名存入数据库,对于推荐文章,只需指向存放静态文件的指定文件夹中的该页面即可。利用PHP操作处理文章列表,存为字符串,生成页面时替换此字符串即可。如,在页面中放置文章列表的表格加入标记{ articletable },而在PHP处理文件中:

  Code:   
  $title = "拓迈国际测试模板";
  $file   = "TwoMax Inter test templet,
author:_Max">Matrix@Two_Max";

 $fp          = fopen ("temp.html","r");
  $content  = fread ($fp,filesize ("temp.html"));
  $content .= str_replace ("{ file }",$file,$content);
  $content .= str_replace ("{ title }",$title,$content);
 
  //  生成列表开始
  $list = '''';
  $sql = "select id,title,filename from article";
  $query = mysql_query ($sql);
  while ($result = mysql_fetch_array ($query)){
     $list .= ''''.$result[''title''].''
'';
  }
  $content .= str_replace ("{ articletable }",$list,$content);
 
  //生成列表结束
  // echo $content;
 
  $filename = "test/test.html";
  $handle    = fopen ($filename,"w"); //打开文件指针,创建文件
  /*
 检查文件是否被创建且可写
  */
  if (!is_writable ($filename)){
     die ("文件:".$filename."不可写,请检查其属性后重试!");
  }
  if (!fwrite ($handle,$content)){  //将信息写入文件
     die ("生成文件".$filename."失败!");
  }
  fclose ($handle); //关闭指针
 
  die ("创建文件".$filename."成功!");
?>


如我们指定分页时,每页20篇。某子频道列表内文章经数据库查询为45条,则,首先我们通过查询得到如下参数:1,总页数;2,每页篇数。第二步,for ($i = 0; $i < allpages; $i++),页面元素获取,分析,文章生成,都在此循环中执行。不同的是,die ("创建文件".$filename."成功!";这句去掉,放到循环后的显示,因为该语句将中止程序执行。例:

  Code:  
  $fp          = fopen ("temp.html","r");
  $content  = fread ($fp,filesize ("temp.html"));
  $onepage  = ''20'';
  $sql          = "select id from article where channel=''$channelid''";
  $query      = mysql_query ($sql);
  $num        = mysql_num_rows ($query);
  $allpages   = ceil ($num / $onepage);
  for ($i = 0;$i<$allpages; $i++){
     if ($i == 0){
        $indexpath = "index.html";
      } else {
        $indexpath = "index_".$i."html";
      }
     $start = $i * $onepage;
     $list    = '''';
     $sql_for_page = "select name,filename,title from article where channel=''$channelid'' limit $start,$onepage";
     $query_for_page = mysql_query ($sql_for_page);
     while ($result = $query_for_page){
        $list .= ''''.$title.''
'';
      }
    
     $content = str_replace ("{ articletable }",$list,$content);
     if (is_file ($indexpath)){
        @unlink ($indexpath); //若文件已存在,则删除
      }
     $handle    = fopen ($indexpath,"w"); //打开文件指针,创建文件
     /*
    检查文件是否被创建且可写
     */
     if (!is_writable ($indexpath)){
        echo "文件:".$indexpath."不可写,请检查其属性后重试!"; //修改为echo
      }
     if (!fwrite ($handle,$content)){  //将信息写入文件
        echo "生成文件".$indexpath."失败!"; //修改为echo
      }
     fclose ($handle); //关闭指针
  }
  fclose ($fp);
  die ("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");
?>  
  大致思路如此,其中如其它数据生成,数据输入输出检查,分页内容指向等可酌情在页面中加入。
  在实际文章系统处理过程当中,还有许多问题有待考虑,与动态页面不同之处,需注意的地方还有很多。但大致思路即是如此,其它方面可举一反三而得。
[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • 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左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • JS基于Mootools实现的个性菜单效果代码

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

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • JS+CSS实现分类动态选择及移动功能效果代码

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

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

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08