php检测上传图片的长度和宽度

 更新时间:2016年11月25日 15:56  点击:2294

/*
array getimagesize ( string $filename [, array &$imageinfo ] )

getimagesize()函数将确定任何给定的图像大小的文件,并返回随着文件类型和高度/宽度的文本字符串是在一个正常的HTML IMG标签和相应的HTTP内容类型所使用的尺寸。
The getimagesize() function will determine the size of any given image file and return the dimensions along with the file type and a height/width text string to be used inside a normal HTML I www.111cn.net MG tag and the correspondant HTTP content type

和getimagesize()也可以返回一些imageinfo参数的更多信息。

注意:请注意,少年警讯和JP2是有不同位深度组件的能力。在这种情况下,为“比特”的价值是最高的位深度的困难。此外,JP2上的JPEG文件可能包含多个2000 codestreams。在这种情况下,和getimagesize()返回第一个码流的价值是在文件的根接触。

注:有关资料检索图标从最高比特率图标。
*/

list($width, $height) = getimagesize($image);
$new_dimensions = resize_dimensions(300,400,$width,$height);

// Calculates restricted dimensions with a maximum of $goal_width by $goal_height
function resize_dimensions($goal_width,$goal_height,$width,$height) {
    $return = array('width' => $width, 'height' => $height);
   
    // If the ratio > goal ratio and the width > goal width resize down to goal width
    if ($width/$height > $goal_width/$goal_height && $width > $goal_width) {
        $return['width'] = $goal_width;
        $return['height'] = $goal_width/$width * $height;
    }
    // Otherwise, if the height > goal, resize down to goal height
    else if ($height > $goal_height) {
        $return['width'] = $goal_height/$height * $width;
        $return['height'] = $goal_height;
    }
   
    return $return;
}

/*
上面的函数我们就是利用

php 有个图片GD库getimagesize()函数。
有个函数是获取图片的基本信息。
getimagesize()
$img=getimagesize('图片源');
宽度为=$img[0];
高度为=$img[1];
格式为=$img[2];

如果你要简单的话可以更简单如

*/
$picpath = 'ww.111cn.net.gif';
$array = getimagesize($picpath);
print_r( $array );

echo '图片宽度为'.$array[0];
echo '图片高度为'.$array[1];
echo '图片格式为'.$array[2];

方法四
  //renumber
  $my_image = array_values(getimagesize('test.jpg'));
  //use list on new array
  list($width, $height, $type, $attr) = $my_image;

  //view new array
  print_r($my_image);

  //spit out content
  echo 'Attribute: '.$attr.'<br />';
  echo 'Width: '.$width.'<br />';

//这里面就会有图片的宽度与高度了

//再一个利用getimagesize显示缩略图的代码
function show_thumbnail($file)
{
    $max = 200 // Max. thumbnail width and height

    $size = getimagesize($file);

    if ( $size[0] <= $max && $size[1] <= $max )
    {
        $ret = '<img src="'.$file.'" '.$size[3].' border="0">';
    }
    else
    {
        $k = ( $size[0] >= $size[1] ) ? $size[0] / $max : $size[1] / $max;
        $ret = '<a href="javascript教程:;" onClick="window.open('image.php?img=';
        $ret .= $file.'','','width='.$size[0];
        $ret .= ',height='.$size[1].'')">';
        $ret .= '<img src="'.$file.'" width="'.floor($size[0]/$k).'" height="'.floor($size[1]/$k).'" border="0" alt="View full-size image"></a>';
    }

    return $ret;
}

 //经过复杂的判断与算是的获取IP地址函数
 function getIP() {
        if (getenv('HTTP_CLIENT_IP')) {
                        $ip = getenv('HTTP_CLIENT_IP');
                }
                elseif (getenv('HTTP_X_FORWARDED_FOR')) {
                        $ip = getenv('HTTP_X_FORWARDED_FOR');
                }
                elseif (getenv('HTTP_X_FORWARDED')) {
                        $ip = getenv('HTTP_X_FORWARDED');
                }
                elseif (getenv('HTTP_FORWARDED_FOR')) {
                        $ip = getenv('HTTP_FORWARDED_FOR');

 

                }
                elseif (getenv('HTTP_FORWARDED')) {
                        $ip = getenv('HTTP_FORWARDED');
                }
                else {

                        $ip = $_SERVER['REMOTE_ADDR'];
                }
                return $ip;
 //最简单获取ip地址代码一句实例
 
 $reIP=$_SERVER["REMOTE_ADDR"];
 echo $reIP;
 
 //
 
 //php教程获取ip的算法
  if(getenv('HTTP_CLIENT_IP')) {
  $onlineip = getenv('HTTP_CLIENT_IP');
  } elseif(getenv('HTTP_X_FORWARDED_FOR')) {
  $onlineip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif(getenv('REMOTE_ADDR')) {
  $onlineip = getenv('REMOTE_ADDR');
  } else {
  $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
  }
  echo $onlineip;

  //可以分出内网与外网站ip地址获取程序
 
 function getip_out(){
 $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']);
 }
 
 echo getip_out();
 
 //php获取ip的算法,用了?号表达式来处理 
 
  $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
  $user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"]; 
  

 function getServerName()
 {
  $ServerName = strtolower($_SERVER['SERVER_NAME']?$_SERVER['SERVER_NAME']:$_SERVER['HTTP_HOST']);
  if( strpos($ServerName,'http://') )
  {   
   return str_replace('http://','',$ServerName);
  }  
  return $ServerName;
 }
 
 //实例调用方法
 
 echo $getServerName;
 
 /*
 函数说明:
  strtolower 把字母转换成不写
  str_replace 替换指定的内容
  strpos 判断字符是否正在指定字符串中
  $_SERVER php全局变量
  本站原创教程,转载注明来源www.111cn.net
 */

function quickSort(&$data, $beg, $end) 

02 { 

03 if ($end > $beg) { 

04 $piv = $data[$beg]; 

05 $k = $beg + 1; 

06 $r = $end; 

07 while ($k < $r) { 

08 if ($data[$k] < $piv) { 

09 $k++; 

10 } else { 

11 $tmp = $data[$k]; 

12 $data[$k] = $data[$r]; 

13 $data[$r] = $tmp; 

14 $r--; 

15 } 

16 } 

17 if ($data[$k] >= $piv) { 

18 $k--; 

19 } 

20 $tmp = $data[$k]; 

21 $data[$k] = $data[$beg]; 

22 $data[$beg] = $tmp; 

23 quickSort($data, $beg, $k); 

24 quickSort($data, $r, $end); 

25 } 

26 } 

27   

28 function quickSort2(&$data) 

29 { 

30 $stack = array(); 

31 array_push($stack, array(0, count($data) - 1)); 

32 while (list($beg, $end) = array_pop($stack)) { 

33 if ($end > $beg) { 

34 $piv = $data[$beg]; 

35 $k = $beg + 1; 

36 $r = $end; 

37 while ($k < $r) { 

38 if ($data[$k] < $piv) { 

39 $k++; 

40 } else { 

41 $tmp = $data[$k]; 

42 $data[$k] = $data[$r]; 

43 $data[$r] = $tmp; 

44 $r--; 

45 } 

46 } 

47 if ($data[$k] >= $piv) { 

48 $k--; 

49 } 

50 $tmp = $data[$k]; 

51 $data[$k] = $data[$beg]; 

52 $data[$beg] = $tmp; 

53 array_push($stack, array($beg, $k)); 

54 array_push($stack, array($r, $end)); 

55 } 

56 } 

57 } 

58   

59 $data = array(7,6,6,3,8,1,8,1,9,1,3,11,51,1,25); 

60 //selectSort($data); 

61 //insertSort($data); 

62 quickSort2($data);

对数组的添加(首尾数据添加(不限定条数)以及中间任意位置添加数据操作) . 
2~对数组的删除(首尾的数据删除(不限定条数)以及中间任意位置的数据删除操作,条件:对数组中间位置删除的,后面的值往前挪,接上以前的位置)  .  
3~对数据的排序操作(排序操作,要的是效率)   . 
4~对数组的查询(对数组中的某一数据进行查询,如果满足,则生成新的数组,这个新的数组就是满足查询条件的,条件:查询,并不是查询某一个值,还有查询某一个值满足某个条件,举个例子:查询数组中某个值大于5的,全部筛选出来)


1、php中的数组实质上是map结构,对于索引数组,添加或删除元素,它并不重新索引。
2、避免混合索引数组和关联数组
其余的要求,查找php手册应该有答案。
说实话,我一直记不住那么多函数。
3。默认的冒泡排序,堆排序,快速排序,插入排序,二分。看你的需求情况了
4.还是循环。
PHP数组虽然强大,但效率也很低


2 数组的删除,以字符串为索引的,直接删除就OK。unset
   以数字为索引的,unset删除,然后使用array_values重置数组。
3 usort排序,可以利用callback函数自己来实现算法。效率主要看你写的算法如何。


1~对数组的添加(首尾数据添加(不限定条数)以及中间任意位置添加数据操作) .
arrar_unshift(数组头部添加数据)
array_push(数组尾部添加数组)
arrar_fill(中间任意位置添加)
2~对数组的删除(首尾的数据删除(不限定条数)以及中间任意位置的数据删除操作,条件:对数组中间位置删除的,后面的值往前挪,接上以前的位置)  .
array_shift(数组头部删除数据)
array_pop(数组为不删除数据)


array_slice不会对原始数组造成任何修改,我是想说array_splice。
刚才又查了下手册,发现array_splice功能好强大,对数组的任何位置的任何个数的增删改操作,都可以用array_splice搞定。
关于非哈希数组重建数字索引的问题,array_merge和array_values都可以,刚才经过试验,后者更快

[!--infotagslink--]

相关文章

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

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

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

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

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • Photoshop枪战电影海报图片制作教程

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

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • jQuery实现简单的文件上传进度条效果

    本文实例讲述了jQuery实现文件上传进度条效果的代码。分享给大家供大家参考。具体如下: 运行效果截图如下:具体代码如下:<!DOCTYPE html><html><head><meta charset="utf-8"><title>upload</title><link rel="stylesheet...2015-11-24
  • php文件上传你必须知道的几点

    本篇文章主要说明的是与php文件上传的相关配置的知识点。PHP文件上传功能配置主要涉及php.ini配置文件中的upload_tmp_dir、upload_max_filesize、post_max_size等选项,下面一一说明。打开php.ini配置文件找到File Upl...2015-10-21
  • EXCEL数据上传到SQL SERVER中的简单实现方法

    EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
  • python opencv通过4坐标剪裁图片

    图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
  • 使用PHP下载CSS文件中的图片的代码

    共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //not...2013-10-04
  • DWVA上传漏洞挖掘的测试例子

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞...2016-11-25
  • 微信小程序如何获取图片宽度与高度

    这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • PHP swfupload图片上传的实例代码

    PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
  • C#中图片旋转和翻转(RotateFlipType)用法分析

    这篇文章主要介绍了C#中图片旋转和翻转(RotateFlipType)用法,实例分析了C#图片旋转及翻转Image.RotateFlip方法属性的常用设置技巧,需要的朋友可以参考下...2020-06-25