多数大学生出来选择的工作和专业无关
首页 > 专业知识

PHP上传图片的主要步骤分析

时间:2018-06-07 18:45:41 [来源]:郑州PHP培训学校

   PHP上传图片的主要步骤分析

  PHP上传图片可以先判断文件类型是否为图片类型用到的函数,然后重命名文件用到的函数,最后,成功上传后输出上传图片的预览用到的函数。
  当我们在实际操作PHP语言编写代码是,通常会遇到一些问题困扰着我们。今天我们要为大家介绍的内容为PHP上传图片的相关方法。
  上传图片原理:首先判断文件类型是否为图片格式,若是则上传文件,然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名),接着把文件上传到指定目录,成功上传后输出上传图片的预览。
  PHP上传图片1.首先我们开始判断文件类型是否为图片类型用到的函数{ strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。 substr: 取部份字符串。 $HTTP_POST_FILES['file']['name']:获取当前上传的文件全称。 }
  图片类型就是“.”后面的字符(比如:一个文件名称为XXX.JPG 那么它的类型就是“.”后面的JPG)。 我们可以用PHP中的函数来截取上传者文件名字的。我们来写个获取文件类型的函数function type() { return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1); } ?>
  PHP上传图片2.若是则上传文件,然后重命名文件用到的函数{ strtolower:把字符串的字母全部转换为小写字母. in_array: 函数在数组中搜索给定的值。 implode:函数把数组元素组合为一个字符串 random:随机生成的数 $_FILES['userfile']['name']:上传文件名称 $uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$uploaddir="./file/";注意写法 }
  这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。
  if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型 { $text=implode('.',$type); echo "您只能上传以下类型文件: ",$text,"<br>"; }
  下面就是给他们重新命名了,
  else {
  $filename=explode(".",$_FILES['userfile']['name']);//把上传的文件名以“.”好为准做一个数组。
  $time=date("m-d-H-i-s");
  //去当前上传的时间 $filename[0]=$time;
  //取文件名t替换
  name=implode(".",$filename);
  //上传后的文件名
  $uploadfile=$uploaddir.$name;
  //上传后的文件名地址 }
  PHP上传图片3.最后把文件上传到指定目录,成功上传后输出上传图片的预览用到的函数{ move_uploaded_file:执行上传文件 }
  if(move_uploaded_file
  ($_FILES['userfile']['tmp_name'],$uploadfile)){ echo "
  <center>您的文件已经上传完毕 上传图片预览:
  center><br>
  <center><img src='$uploadfile'>center>";
  echo"<br><center>
  <a href='javascrīpt:history.go(-1)'>
  继续上传a>center>"; }
  else { echo"传输失败!"; }
  以上就是PHP上传图片的相关方法介绍,希望对大家有所帮助。
  探讨如何实现PHP数组排序
  PHP数组排序可以通过sort()函数来实现。我们将在这篇文章中为大家详细介绍数组排序的具体实现方法,希望对大家有所帮助。
  在PHP语言编程中,我们经常会用到数组相关的知识。在接下来的文章中我们将具体为大家讲解有关PHP数组排序的相关实现方法。
  在了解了usort自定义排序后,我们再来看看sort(),这个函数可谓是数组里的排序函数的鼻祖,大家肯定发现所有的PHP数组排序函数都会带有sort作为后缀。函数原型:bool sort ( array &array [, int sort_flags] )说明:基本上每个函数都会有个可选的参数,sort也不例外。这个可选参数指明的一种习惯。
  可选类型有如下几种:
  SORT_REGULAR – 正常比较单元(不改变类型) //按照ASCII值排序(B大于a)SORT_NUMERIC – 单元被作为数字来比较 //对整数和浮点数常用这种参数SORT_STRING – 单元被作为字符串来比较
  SORT_LOCALE_STRING – 根据当前的区域(locale)设置来把单元当作字符串比较还是看个例子,来自帮助手册:
  php
  $fruits = array("lemon", "orange", "banana", "apple");sort($fruits);
  foreach ($fruits as $key => $val) {
  echo "fruits[".$key."] = " . $val . "\n";}
  ?>
  这个PHP数组排序的结果如下:
  fruits[0] = apple
  fruits[1] = banana
  fruits[2] = lemon
  fruits[3] = orange
  大家可以发现,原来是索引为0的lemon,再排序后就变成了apple。为了保持原来的键/值不变,你可以把sort()换成asort()即可。另外这两个函数是对键进行升序的排列(a在b的前面)。如果要使其进行降序,只要使用rsort()代替即可,相对应的arsort()是保持原来的键/值的相关联性的。
  下面简要介绍下ksort()函数
  这个函数主要是用来对关联数组进行而存在,它的“姐妹”函数uksort()是使用自定义函数而进行比较的。一句话:ksort()对于关联级数,对键进行排序并保留键名到数据的关联。数组的自然排序,到目前为止我们所知道的排序函数要么是用默认的方式,要么按照自定义的方式进行排序。那么natsort()则使用一种人性化的排序方式来对数组进行排序。在此就不说了,实例可以查看手册,如果你手头上没有PHP帮助手册,你可以在浏览本站在线帮助手册进行查看shuffle()//函数的使用
  Shuffle()//用来对一个数组进行随机排序,这个有点像抽签,其他的就不多说了。到用的时候再看吧。
  array_rand()//函数的使用
  array_rand()//函数和shuffle()差不多,也是随机返回数组中的元素,如下调用:
  array_rand ( array [, int num_req] ) //可选参数指出你要返回的个数。
  PHP数组排序的方式就介绍到这,希望对大家有所帮助。
  探讨PHP字符串颠倒顺序的实现方法
  PHP字符串颠倒顺序可以通过使用递归函数实现;使用循环实现;使用二分法实现等等。后两种的实现方法的效率是非常高的。
  我们如何在PHP编码中实现字符串顺序的颠倒呢?在这篇文章中,我们将为大家详细介绍有关PHP字符串颠倒顺序的实现方法,希望对大家有所帮助。
  首先,php自带了一个字符串颠倒顺序的函数。
  PHP字符串颠倒顺序代码:
  $str = 'To Change The template';
  echo strrev($str);
  // 结果:etalpmet ehT egnahC oT
  其次,使用递归函数实现。当然效率很低!PHP字符串颠倒顺序代码:
  function reverse_r($str)
  { if (strlen($str) > 0)
  { reverse_r(substr($str, 1));
  }
  echo substr($str, 0, 1);
  return;}echo reverse_r($str);
  第三,使用循环实现,效率有很大的提高。PHP字符串颠倒顺序代码:
  /** * 利用循环实现字符串逆序排列 */
  function reverse_i($str)
  { for ($i = 1; $i < = strlen($str); $i++){ echo substr($str, -$i, 1); } return;
  }
  echo reverse_i($str);
  最后,使用二分法实现,效率有更大的提高。PHP字符串颠倒顺序代码:
  /** * 使用二分法来实现字符串颠倒顺序。 */function reverse_a($str)
  { $forNum = ceil(strlen($str)/2);
  $strLen = strlen($str);
  for ( $i = 1; $i < = $forNum; $i++)
  { if($i <= $strLen-$i)
  { $tmp = $str[$i-1]; $str[$i-1] =
  $str[$strLen-$i]; $str[$strLen-$i]= $tmp;}
  }
  return $str; }
  // 注:其实按照二分法来实现,理论上效率会提升一半,但是这个涉及//到数组的指针操作,实际效率会怎样?
  难说。echo "二分实现:\t",reverse_a($str);最后一种PHP字符串颠倒顺序的方法涉及到三个知识点:
  1. ceil()函数:进一法取整。如:5/4=1.25,ceil(5/4)=2,不管小数位是否大于0.5,均进一取整。
  2. 字符串当成数组访问,如$str[0],$str[1]&hellip;可以访问字符串$str的第一个字符、第二个字符&hellip;3. 二分法。PHP字符串颠倒顺序的方法3需要循环的次数是字符串的长度,而方法4则是字符串长度的一半,所以效率会提高一倍(理论上)。
 

上一篇:PHP字符集编码出现乱码的解决办法

下一篇:探讨如何实现PHP判断字符串是否为IP