php文件上传move_uploaded_file函数

 更新时间:2016年11月25日 15:10  点击:2044
在php教程中要上传文件那简单的利用move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。

语法
move_uploaded_file(file,newloc)参数 描述
file 必需。规定要移动的文件。
newloc 必需。规定文件的新位置

 代码如下 复制代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.111cn.net/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php文件上传函数</title>
</head>

<body>

<form enctype="multipart/form-data" action="upload.php" method="post">
    <input type="hidden" name="max_file_size" value="30000" />
    <input name="userfile" type="file" />
    <input type="submit" value="send file" />
</form>
</body>
</html>

 代码如下 复制代码
<?
if( $_post )
{
 if( uploadfile( "userfile" ) )
 {
  echo '文件上传成功';
 }
 else
 {
  echo '文件上传失败';
 }
}
//参数   $file   为   前台file控件的name;
function     uploadfile($file)
{
    $uploaddir   =   $_server[ 'document_root ']. '/www.111cn.net/uploadfile/ ';
    $file_name   =   $uploaddir.rand(1,1000000). ". ".fileextend($_files[$file][ 'name ']);
    if   (move_uploaded_file($_files[$file][ 'tmp_name '],$file_name))  
    {
    return   true;
    }
    else
    {
        return   false;
    }
}
?>

提示和注释
注释:本函数仅用于通过 http post 上传的文件。

注意:如果目标文件已经存在,将会被覆盖。

 代码如下 复制代码

*/
function attachicon($type,$size='') {
 static $attachicons = array(
 0 => 'common.gif',
 1 => 'image.gif',
 2 => 'binary.gif',
 3 => 'rar.gif',
 4 => 'msoffice.gif',
 5 => 'text.gif',
 6 => 'html.gif',
 7 => 'real.gif',
 8 => 'av.gif',
 9 => 'flash.gif',
 10 => 'pdf.gif',
 11 => 'torrent.gif'
 );

 if(preg_match("/image|^(jpg|gif|png|bmp)/", $type)) {
  $typeid = 1;
 } elseif(preg_match("/bittorrent|^torrent/", $type)) {
  $typeid = 11;
 } elseif(preg_match("/pdf|^pdf/", $type)) {
  $typeid = 10;
 } elseif(preg_match("/flash|^(swf|fla|swi)/", $type)) {
  $typeid = 9;
 } elseif(preg_match("/audio|video|^(wav|mid|mp3|m3u|wma|asf|asx|vqf|mpg|mpeg|avi|wmv)/", $type)) {
  $typeid = 8;
 } elseif(preg_match("/real|^(rm|rv)/", $type)) {
  $typeid = 7;
 } elseif(preg_match("/htm|^(php|js|pl|cgi|asp教程)/", $type)) {
  $typeid = 6;
 } elseif(preg_match("/text|^(txt|rtf|wri|chm)/", $type)) {
  $typeid = 5;
 } elseif(preg_match("/word|powerpoint|^(doc|ppt)/", $type)) {
  $typeid = 4;
 } elseif(preg_match("/compressed|^(zip|arj|rar|arc|cab|lzh|lha|tar|gz)/", $type)) {
  $typeid = 3;
 } elseif(preg_match("/octet-stream|^(exe|com|bat|dll)/", $type)) {
  $typeid = 2;
 } else {
  $typeid = 0;
 }

 return $size.$attachicons[$typeid];
}

文章收藏了三款php教程遍历二维数组,在这里我们只讲利用了 foreach函数来遍历二维数组的方法,好了下面来看看吧。
 代码如下 复制代码
<?php
 $team = array('lk','ok');
 $book = array('linux服务器配置与管理',$team);
 
 foreach($book as $k=>$val)  //意思是for  $book  each  $value( as )
  if( is_array($val) ) foreach( $val as $value) echo $value.'<br />';
  else echo $k.'=>'.$val.'<br />';
?>


 
则输出为:
0=>linux服务器配置与管理
lk
ok


方法二

 代码如下 复制代码

$arr=array();
foreach ($row_mark as $arr)
{
print_r("<tr>");
foreach ($arr as $k=>$v)
{
print_r("<td width='80'>".$v."</td>");
}
print_r("</tr>");
}


第三种情况

$arr = array(
  array('name'=>'www.111cn.net备布置','url'=>'?action=config&do=config'),
  array('name'=>'验证码配备布置','url'=>'?action=config&do=seccode'),
  array('name'=>'模板管理','url'=>'www.111cn.net?action=config&do=tpl'),
  array('name'=>'帐号管理','url'=>'?action=admin&do=list'),
  array('name'=>'新增帐号','url'=>'?action=admin&do=add'));
  foreach($arr as $k=>$val){
  echo "name:".$val["name"]."n";
  }

 <?php教程
class opmysql教程{
private $host = 'localhost'; //服务器地址
private $name = 'root'; //登录账号
private $pwd = ''; //登录密码
private $dbase = 'a0606123620'; //数据库教程名称
private $conn = ''; //数据库链接资源
private $result = ''; //结果集
private $msg = ''; //返回结果
private $fields; //返回字段
private $fieldsnum = 0; //返回字段数
private $rowsnum = 0; //返回结果数
private $rowsrst = ''; //返回单条记录的字段数组
private $filesarray = array(); //返回字段数组
private $rowsarray = array(); //返回结果数组
private $idusername=array();
private $idsubtitle=array();
//初始化类
function __construct($host='',$name='',$pwd='',$dbase=''){
if($host != '')
$this->host = $host;
if($name != '')
$this->name = $name;
if($pwd != '')
$this->pwd = $pwd;
if($dbase != '')
$this->dbase = $dbase;
$this->init_conn();
}
//链接数据库
function init_conn(){
$this->conn=@mysql_connect($this->host,$this->name,$this->pwd);
@mysql_select_db($this->dbase,$this->conn);
mysql_query("set names utf8");
}
//查询结果
function mysql_query_rst($sql){
if($this->conn == ''){
$this->init_conn();
}
$this->result = @mysql_query($sql,$this->conn);
}

//取得查询结果字段数目
function getfieldsnum($sql){
$this->mysql_query_rst($sql);
$this->fieldsnum = @mysql_num_fields($this->result);
}
//取得查询结果行数目
function getrowsnum($sql){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
return @mysql_num_rows($this->result);
}else{
return '';
}
}
//取得记录数组有索引(单条记录)
function getrowsrst($sql){
$this->mysql_query_rst($sql);
if(mysql_error() == 0){
$this->rowsrst = mysql_fetch_array($this->result,mysql_assoc);
return $this->rowsrst;
}else{
return '';
}
}
//取得记录数组有索引(多条记录)全部
function getrowsarray($sql){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
while($row = mysql_fetch_array($this->result,mysql_assoc)) {
$this->rowsarray[] = $row;
}
return $this->rowsarray;
}else{
return '';
}
}
//更新、删除、添加记录数,返回影响到的行数
function uidrst($sql){
if($this->conn == ''){
$this->init_conn();
}
@mysql_query($sql);
$this->rowsnum = @mysql_affected_rows();
if(mysql_errno() == 0){
return $this->rowsnum;
}else{
return '';
}
}
//获取对应的字段值,一条数字索引,mysql_array_rows才是带字段索引
function getfields($sql,$fields){
$this->mysql_query_rst($sql);
if(mysql_errno() == 0){
if(mysql_num_rows($this->result) > 0){
$tmpfld = @mysql_fetch_row($this->result);
$this->fields = $tmpfld[$fields];

}
return $this->fields;
}else{
return '';
}
}

//错误信息
function msg_error(){
if(mysql_errno() != 0) {
$this->msg = mysql_error();
}
return $this->msg;
}
//释放结果集
function close_rst(){
mysql_free_result($this->result);
$this->msg = '';
$this->fieldsnum = 0;
$this->rowsnum = 0;
$this->filesarray = '';
$this->rowsarray = '';
$this->idsubtitle='';
$this->idusername='';
}
//关闭数据库
function close_conn(){
$this->close_rst();
mysql_close($this->conn);
$this->conn = '';
}
}
?>

实例方法

 

 代码如下 复制代码
<?php
$conne = new opmysql();
$conne-> getrowsarray($sql);
$conne-> close_conn();
$password=”123456一二三四五六”;
echo md5($password.”www.111cn.net”);//输出为32位的密文,是没有解密函数的,可以实现简单的加密功能。
?>


mysql数据库类型主要是: char(固定空间字符串,多大就是多少个中文字符)、varchar(可变空间字符串,多大就是初始化多少个中文字符)、int(整数多大就是多少位)、float(浮点数)、timestamp(日期,可选建立时自动创建,输出时就已经是格式化过的date)、text(文本)、bool(布尔型)

写sql语句时sum()可以统计值;order by 'id' desc limit 10,10等要活用。

在phpmyadmin学一下sql语句增删改查就行了。

本教程主要是讲一下关于日期、表单接收、session、cookie在php应用与使用方法,下面我们一一举例说明了关于php中这些入门教程也是基础要学的内容。

session

 

 代码如下 复制代码
<?php
session_start();//session在浏览器关闭后马上失效,需要这样声明才能读写session
$_session['id']='服务器';//这就是声明和初始化了,和数组用法一样
$_session['name']='会话';
print_r($_session);//会话注册成功输出一个数组
echo "<br>";
$_session['id']='还是服务器';//改变一个会话,再输出看看
unset($_session['name']);//注销一个会话,再输出看看
print_r($_session);
echo "<br>";
?>

会话支持允许用户注册任意数目的变量并保留给各个请求使用。当来客访问网站时,php 会自动(如果 session.auto_start 被设为 1)或在用户请求时(由 session_start() 明确调用或 session_register() 暗中调用)检查请求中是否发送了特定的会话 id。如果是,则之前保存的环境就被重建

page1.php

 代码如下 复制代码
session_start();
echo 'welcome to page #1';
/* 创建session变量并给session变量赋值 */
$_session['favcolor'] = 'green';
$_session['animal'] = 'cat';
$_session['time'] = time();


page2.php

 代码如下 复制代码
session_start();
print $_session['animal']; // 打印出单个session
var_dump($_session); // 打印出page1.php传过来的session值

 

get,

$_get 变量
$_get 变量是一个数组,内容是由 http get 方法发送的变量名称和值。

$_get 变量用于收集来自 method="get" 的表单中的值。从带有 get 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送的信息量也有限制(最多 100 个字符)。

例子

 代码如下 复制代码
<form action="welcome.php" method="get">
name: <input type="text" name="name" />
age: <input type="text" name="age" />
<input type="submit" />


</form>当用户点击提交按钮时,发送的 url 会类似这样:

http://www.111cn.net/welcome.php?name=peter&age=37"welcome.php" 文件现在可以通过 $_get 变量来获取表单数据了(请注意,表单域的名称会自动成为 $_get 数组中的 id 键):

 代码如下 复制代码
welcome <?php echo $_get["name"]; ?>.<br />
you are <?php echo $_get["age"]; ?> years old!

看个简单详细的实例

 代码如下 复制代码
<?php
echo $str=urlencode("第一页");//url变量编码,跟google一样
echo "<br>".urldecode($str);//url变量解码,我看到了
echo "<br><a href=index.php?page=".$str.">第一页</a>";
echo "<br>";
if($_get)echo "变量已接收:".$_get['page'];//$_get对应$_post,php是自动识别url编码并自动解码好的。
echo "<br>";
?>

cookie

php cookie 用法
$time = time() + 300;    //5分钟过期
$code = md5($string . $time . $salt);
setcookie('check_time', $time);
setcookie('code', $code);

//验证部分
$time = time();
if($check_time < $time)//如果服务器时间比验证时间大,算过期
    //expire过期
   
if(md5($string . $check_time . $salt) !== $code)
    //错误
其实这种方法相对好一点,因为过期不能提交了,但是过期之前还是可以无限提交的

看一cookie实例

 

 代码如下 复制代码
<?php
setcookie("id","客户端");//这就是声明和初始化cookie的函数。关闭浏览器即失效
setcookie("name","会话",time()+3600);//自此1小时后失效
print_r($_cookie);//会话注册成功输出一个数组,也可以用$http_cookie_vars访问
echo "<br>";
setcookie("id","还是客户端");//改变一个会话,再输出看看
unset($_cookie['name']);//注销一个会话,再输出看看,等价于setcookie("name","",time()-1);这是很多书上说的,其实用unset也能注销
print_r($_cookie);
echo "<br>";
?>

日期

 

 代码如下 复制代码
<?php
echo time();//返回一串以秒计算的时间数字戳
echo "<br>";
echo date("y-m-d h:i:s",time()+8*3600);//格式化时间,+8*3600变为中国时区时间
echo "<br>";
$str="2010-08-24 10:26:10";
echo date("y-m-d h:i:s",strtotime($str));//strtotime将字符串转为时间戳
echo "<br>";
?>
[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Php文件上传类class.upload.php用法示例

    本文章来人大家介绍一个php文件上传类的使用方法,期望此实例对各位php入门者会有不小帮助哦。 简介 Class.upload.php是用于管理上传文件的php文件上传类, 它可以帮...2016-11-25
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25
  • PHP文件上传一些小收获

    又码了一个周末的代码,这次在做一些关于文件上传的东西。(PHP UPLOAD)小有收获项目是一个BT种子列表,用户有权限上传自己的种子,然后配合BT TRACK服务器把种子的信息写出来...2016-11-25
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18