php获取上传文件类型 获取文件后缀

 更新时间:2016年11月25日 15:11  点击:1795
本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断。
 代码如下 复制代码

//获得图片的格式,包括jpg,png,gif
function get_type($img_name)//获取图像文件类型
{
 if (preg_match("/.(jpg|jpeg|gif|png|bmp)$/i", $img_name, $matches)){
  $type = strtolower($matches[1]);
 }else{
  $type = "string";
 }
 return $type;
}

//判断上传文件类型
$allowedextensions = array("txt","csv","htm","html","xml",  
    "css教程","doc","xls","rtf","ppt","pdf","swf","flv","avi",  
    "wmv","mov","jpg","jpeg","gif","png");   
    foreach ($_files as $file) {  
    if ($file['tmp_name'] > '') {  
      if (!in_array(end(explode(".",  
            strtolower($file['name']))),  
            $allowedextensions)) {  
       die($file['name'].' is an invalid file type!<br/>'.  
        '<a href="网页特效:history.go(-1);">'.  
        '&lt;&lt go back</a>');  
      }  
}  
}  

//另类的读取文件与图片类型

function checktitle($filename) {
$file     = fopen($filename, "rb");
$bin      = fread($file, 2); //只读2字节
fclose($file);
$strinfo  = @unpack("c2chars", $bin);
$typecode = intval($strinfo['chars1'].$strinfo['chars2']);
$filetype = "";
switch ($typecode)
{
 case 7790:
 $filetype = 'exe';
 break;
 case 7784:
 $filetype = 'midi';
 break;
 case 8297:
 $filetype = 'rar';
 break;
 case 255216:
 $filetype = 'jpg';
 break;
 case 7173:
 $filetype = 'gif';
 break;
 case 6677:
 $filetype = 'bmp';
 break;
 case 13780:
 $filetype = 'png';
 break;
 default:
 $filetype = 'unknown'.$typecode;
}
//fix
if ($strinfo['chars1']=='-1' && $strinfo['chars2']=='-40' ) {
return 'jpg';
}
if ($strinfo['chars1']=='-119' && $strinfo['chars2']=='80' ) {
return 'png';
}
return $filetype;
}

 

?>

我们经常会碰到采集内容时,要补全地址是吧,下面我们来看看这款php把相对路径转换成绝对路径方法吧。

相对路径转化成绝对路径

 代码如下 复制代码

function relative_to_absolute($content, $feed_url) {
    preg_match('/(http|https教程|ftp):///', $feed_url, $protocol);
    $server_url = preg_replace("/(http|https|ftp|news):///", "", $feed_url);
    $server_url = preg_replace("//.*/", "", $server_url);

    if ($server_url == '') {
        return $content;
    }

    if (isset($protocol[0])) {
        $new_content = preg_replace('/href="//', 'href="'.$protocol[0].$server_url.'/', $content);
        $new_content = preg_replace('/src="//', 'src="'.$protocol[0].$server_url.'/', $new_content);
    } else {
        $new_content = $content;
    }
    return $new_content;
}

//取得所有链接

 代码如下 复制代码
function get_all_url($code){
        preg_match_all('/<as+href=["|']?([^>"' ]+)["|']?s*[^>]*>([^>]+)</a>/i',$code,$arr);
        return array('name'=>$arr[2],'url'=>$arr[1]);

定义和用法
header() 函数向客户端发送原始的 http 报头。

认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 php教程 4 以及更高的版本中,您可以使用输出缓存来解决此问题):

<html>

实例一

 代码如下 复制代码
<?php # script 2.7 - view_tasks.php
// connect to the database:
$dbc = @mysql教程i_connect ('localhost', 'username', 'password', 'test') or die ('<p>could not connect to the database!</p></body></html>');
// get the latest dates as timestamps教程:
$q = 'select unix_timestamp(max(date_added)), unix_timestamp(max(date_completed)) from tasks';
$r = mysqli_query($dbc, $q);
list($max_a, $max_c) = mysqli_fetch_array($r, mysqli_num);
// determine the greater timestamp:
$max = ($max_a > $max_c) ? $max_a : $max_c;
// create a cache interval in seconds:
$interval = 60 * 60 * 6; // 6 hours
// send the header:
header ("last-modified: " . gmdate ('r', $max));
header ("expires: " . gmdate ("r", ($max + $interval)));
header ("cache-control: max-age=$interval");
?>

实例二

 代码如下 复制代码

<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('location: http://www.111cn.net/');
?>语法
header(string,replace,http_response_code)

提示用户保存一个生成的 pdf 文件(content-disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):

 代码如下 复制代码

<?php
header("content-type:application/pdf");

// 文件将被称为 downloaded.pdf
header("content-disposition:attachment;filename='downloaded.pdf'");

// pdf 源在 original.pdf 中
readfile("original.pdf");
?>

<html>
<body>

 代码如下 复制代码

<script language="网页特效">
    function checkreg()
    {    
  if (form1.name.value=="")
  {
   // 如果真实姓名为空,则显示警告信息
         alert("真实姓名不能为空!");
   form1.name.focus();
   return false;
     }
  if (form1.password.value=="" )
  {
   // 如果密码为空,则显示警告信息
         alert("密码不能为空!");
   form1.password.focus();
   return false;
     }
  if (form1.pwd.value=="" )
  {
   // 如果密码为空,则显示警告信息
         alert("确认密码不能为空!");
   form1.pwd.focus();
   return false;
     }
  // 两次密码应一样
  if (form1.password.value!=form1.pwd.value && form1.password.value!="")
  {
   alert("两次密码不一样,请确认!");
   form1.password.focus();
   return false;
  }
  if (form1.email.value=="")
  {
   // 如果email为空,则显示警告信息
         alert("email不能为空!");
   form1.email.focus();
   return false;
     }
   // 检查email格式是否正确
  else if (form1.email.value.charat(0)=="." ||
   form1.email.value.charat(0)=="@"||
   form1.email.value.indexof('@', 0) == -1 ||
   form1.email.value.indexof('.', 0) == -1 ||
   form1.email.value.lastindexof("@")==form1.email.value.length-1 ||
   form1.email.value.lastindexof(".")==form1.email.value.length-1)
  {
   alert("email的格式不正确!");
   form1.email.select();
   return false;
  }
  return true;

    } 
</script>

<html>
<body>

<form name="form1" method="post" action="regok.php" enctype='multipart/form-data' onsubmit="return checkreg()" >
  <table border="0" cellspacing="1" cellpadding="3" align="center">
    <tr>
      <th colspan="2"><font size="5">用 户 注 册 界 面</font></th>
    </tr>   
    <tr>
      <td>姓   名:</td>
      <td>
        <input type="text" name="name">
    </tr>
    <tr>
      <td>密   码:</td>
      <td>
        <input type="password" name="password">       
    </tr>
 <tr>
      <td>确认密码:</td>
      <td>
        <input type="password" name="pwd">       
    </tr>
 <tr>
      <td>email:</td>
      <td>
        <input type="text" name="email">       
    </tr>
  <tr>
      <td>电   话:</td>
      <td>
        <input type="text" name="tel">
    </tr>
 <tr>
      <td>地   址:</td>
      <td>
        <input type="text" name="address">
    </tr>   
    <tr>
      <td  align=right >
        <input type="submit" name="submit" value="注 册">
      </td>
      <td align=center>
        <input type="reset" name="submit2" value="重 写">
      </td>
    </tr>
  </table>
</form>

</body>

</html>

<?php

 代码如下 复制代码

//初始化session
session_start();
// 包含数据库教程连接文件和头文件
$conn=mysql教程_connect("localhost","phpdb","phpdb")
        or die("不能连接数据库服务器: ".mysql_error());
mysql_select_db("book",$conn) or die ("不能选择数据库: ".mysql_error());
?>
<?php
// 取得网页的参数
$name=$_post['name'];
$password=$_post['password'];
$email=$_post['email'];
$tel=$_post['tel'];
$address=$_post['address'];

// 加密密码
$password=md5($password);

// 连接数据库,注册用户
$sql="insert into user(name, password, email, tel, address) values('$name','$password','$email', '$tel','$address')";
mysql_query($sql,$conn) or die ("注册用户失败: ".mysql_error());

// 获得注册用户的自动id,以后使用此id才可登录
$result=mysql_query("select last_insert_id()",$conn);
$re_arr=mysql_fetch_array($result);
$id=$re_arr[0];

// 注册成功,自动登录,注册session变量
session_register("user");
$user=$id;
echo "<table align=center><tr><td align=center>注册成功!</td></tr>";
echo "<tr><td align=center><font color=red>您的注册id是:".$id;
echo ",请您记住,以后用此id登录!</font></td></tr></table>";

本款php教程是一款告诉你如何连接和选择数据库并且利用php把数据保存,删除,修改,更新,查询 mysql数据库的php入级教程。

*/

 代码如下 复制代码

// 连接和选择数据库
$conn=mysql_connect("localhost","phpdb","phpdb")
        or die("不能连接数据库服务器: ".mysql_error()); 
mysql_select_db("test",$conn) or die ("不能选择数据库: ".mysql_error()); 
// 插入记录部分
// 编辑插入记录的sql语句
$insertsql="insert into user(name,password,address,tel,email) values('王强','123','深圳','8163445','wang@wel.com')";
// 执行插入操作
$insert = mysql_query($insertsql,$conn);
// 检测插入操作是否成功
if ($insert){
 echo "插入记录成功!";
 echo "<br>";
}
else
{
 echo "插入记录失败!";
 echo "<br>";
}

// 修改记录部分
// 编辑修改记录的sql语句
$updatesql="update set tel='1234567' from user where name='王强'";
// 执行修改操作
$update = mysql_query($updatesql,$conn);
// 检测修改操作是否成功
if ($update){
 echo "修改记录成功!";
 echo "<br>";
}
else
{
 echo "修改记录失败!";
 echo "<br>";
}

// 删除记录部分
// 编辑删除记录的sql语句
$deletesql="delete from user where name='王强'";
// 执行删除操作
$delete = mysql_query($deletesql,$conn);
// 检测删除操作是否成功
if ($delete){
 echo "删除记录成功!";
 echo "<br>";
}
else
{
 echo "删除记录失败!";
 echo "<br>";
}

/*
use test;
create table users (
   id int(3) not null auto_increment,
   name varchar(20) not null,
   password varchar(50) not null,
   address varchar(50),
   tel varchar(20),
   email varchar(50) not null,
   primary key (id)
);
*'

?>

[!--infotagslink--]

相关文章

  • PHP成员变量获取对比(类成员变量)

    下面本文章来给大家介绍在php中成员变量的一些对比了,文章举了四个例子在这例子中分别对不同成员变量进行测试与获取操作,下面一起来看看。 有如下4个代码示例,你认...2016-11-25
  • php 获取用户IP与IE信息程序

    php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
  • php获取一个文件夹的mtime的程序

    php获取一个文件夹的mtime的程序了,这个就是时间问题了,对于这个问题我们来看小编整理的几个例子,具体的操作例子如下所示。 php很容易获取到一个文件夹的mtime,可以...2016-11-25
  • 如何获取网站icon有哪些可行的方法

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon,所以此方法很多情况都不可用。 更好的办法是通过google提供的服务来实现:http://www.google.com/s2/favi...2014-06-07
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • jquery如何获取元素的滚动条高度等实现代码

    主要功能:获取浏览器显示区域(可视区域)的高度 : $(window).height(); 获取浏览器显示区域(可视区域)的宽度 :$(window).width(); 获取页面的文档高度 $(document).height(); 获取页面的文档宽度 :$(document).width();...2015-10-21
  • 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 获取指定标签的对象及属性的设置与移除

    1、先讲讲JQuery的概念,JQuery首先是由一个 America 的叫什么 John Resig的人创建的,后来又很多的JS高手也加入了这个团队。其实 JQuery是一个JavaScript的类库,这个类库集合了很多功能方法,利用类库你可以用简单的一些代...2014-05-31
  • PHP判断上传文件类型的解决办法

    分享给大家php判断上传文件类型的方法,大家一起学习学习。/** * 读取文件前几个字节 判断文件类型 * @return String */ function checkTitle($filename){ $file=fopen($filename, "rb"); $bin=fread($file, 2); /...2015-10-21
  • C#获取字符串后几位数的方法

    这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jquery获取tagName再进行判断

    如果是为了取到tagName后再进行判断,那直接用下面的代码会更方便: $(element).is('input') 如果是要取到标签用作到别的地方,可以使用一下代码: $(element)[0].tagName 或: $(element).get(0).tagName...2014-05-31
  • DOM XPATH获取img src值的query

    复制代码 代码如下:$nodes = @$xpath->query("//*[@id='main_pr']/img/@src");$prurl = $nodes->item(0)->nodeValue;...2013-10-04
  • PHP 如何获取二维数组中某个key的集合

    本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
  • php获取汉字拼音首字母的方法

    现实中我们经常看到这样的说明,排名不分先后,按姓名首字母进行排序。这是中国人大多数使用的排序方法。那么在php程序中该如何操作呢?下面就分享一下在php程序中获取汉字拼音的首字母的方法,在网上搜到的大多数是有问题的...2015-10-23
  • 使用C#获取系统特殊文件夹路径的解决方法

    本篇文章是对使用C#获取系统特殊文件夹路径的解决方法进行了详细的分析介绍,需要的朋友参考下...2020-06-25
  • php如何获取文件的扩展名

    网上也有很多类似的方法,不过都存在这样那样的不严谨的问题,本文就不一一分析了,这里只给出最正确的利用php 获取文件扩展名(文件后缀名)的方法。 function get_extension($filename){ return pathinfo($filename,PATHIN...2015-10-30
  • 基于JavaScript获取鼠标位置的各种方法

    这篇文章主要介绍了基于JavaScript获取鼠标位置的各种方法 ,需要的朋友可以参考下...2015-12-18
  • C#获取变更过的DataTable记录的实现方法

    这篇文章主要介绍了C#获取变更过的DataTable记录的实现方法,对初学者很有学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • 如何获取百度搜索结果页中解密之后的真实链接

    大家用百度搜索的时候,可能会发现,结果链接用的还是百度的链接,点击之后才会跳转到另外一个页面,另外一个页面的真实链接如何获取到呢?? 通过分析发现: 可以看出,返回...2016-05-19
  • 用python获取txt文件中关键字的数量

    这篇文章主要介绍了如何用python获取txt文件中关键字的数量,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...2020-12-24