PHP对文件的处理
PHP在服务器端文件的应用上,相关的范畴不仅仅在于用户与服务器资料库间的各种连接存取操作,也可以通过PHP内建的文件处理函数,来进行一般文件处理操作。 basename--返回路径中的文件名部分
语法格式:$path="/home/httpd/html/index.PHP";
$file=basename($path);//$fileissetto"index.PHP"
$file=basename($path,".PHP");//$fileissetto"index" pathinfo():分析文件当前路径
语法格式:$path_parts=pathinfo("/www/htdocs/index.html");
echo$path_parts["dirname"]."\n";/www/htdocs文件路径
echo$path_parts["basename"]."\n";index.html文件与扩展名
echo$path_parts["extension"]."\n";html文件格式 文件类型与相关信息
filesize():计算文件的大小(byte)
语法格式:$bytes=filesize(“a.txt”);
echo$bytesround($bytes/1024,2);
fileatime():文件最后一次访问时间(时间戳)
语法格式:echodate(“Y-m-dg:i:sa”,fileatime);
filectime():文件建立时间
语法格式:echodate(“Y-m-dg:i:sa”,filectime);
filemtime():文件最后一次更新时间
语法格式:echodate(“Y-m-dg:i:sa”,filemtime);
fileperms():文件属性以及权限10进制
语法格式:echosubstr(base_convert(fileperms(a.txt),10,8),3);
fileowner():文件所有者的uid(仅在Linux系统下有用)
语法格式:echofileowner(“a.txt”); 文件的操作
'r'只读方式打开,将文件指针指向文件头。
'r+'读写方式打开,将文件指针指向文件头。
'w'写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'w+'读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
'a'写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
'a+'读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。 'x'创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。这和给底层的open(2)系统调用指定O_EXCL|O_CREAT标记是等价的。此选项被PHP4.3.2以及以后的版本所支持,仅能用于本地文件。
'x+'创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则fopen()调用失败并返回FALSE,并生成一条E_WARNING级别的错误信息。如果文件不存在则尝试创建之。这和给底层的open(2)系统调用指定O_EXCL|O_CREAT标记是等价的。此选项被PHP4.3.2以及以后的版本所支持,仅能用于本地文件。 fopen()--打开文件或者URL
fclose()--关闭一个已打开的文件指针
fread()--读取文件内容
fwrite()--写入文件
语法格式:if(!$f=@fopen("file03.PHP","x")){//打开一个文件x方法写入
die("文件读取失败");//读取失败
}
fwrite($f,"kkkkkkkkkk");//向那个文件写写什么
echofread($f,10);//读取这个文件的内容
fclose($f);关闭打开文件
file()--把整个文件读入一个数组中
语法格式:$arr=file("file03.PHP");
print_r($arr);//读取文件返回数组 readfile()--读入一个文件并写入到输出缓冲。
语法格式:$str=readfile("file03.PHP");
echo$str;输出 一个文件记数器的写法:
$f=fopen("file03.PHP","r");
$i=fread($f,1000);
echo"这是您第{$i}次访问";
fclose($f);
$f=fopen("file03.PHP","w");
$i++;
fwrite($f,$i);
fclose($f);
````<BR>file_get_contents()–将整个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>读入一个字符串 <BR>语法格式:file_get_contents(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>或URL) file_put_contents()–?将一个字符串写入<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>,和依次<a href="https://www.jb51.cc/tag/diaoyong/" target="_blank" class="keywords">调用</a>fopen(),fwrite()以及fclose()<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a>一样 <BR>file_put_contents(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>,写入数据) <BR>feof()--测试<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针是否到了<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>结束的位置 <BR>ftell()--返回<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针读/写的位置 <BR>语法格式ftell(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针) <BR>flock()--轻便的咨询<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>锁定 <BR>语法格式:flock(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针,控制参数) <BR><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针:是一个已经打开(fopen)的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针控制参数: <BR>“LOCK_SH”表示要取得共享锁定(读取程序),(<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>4.0.1以前版本设置1)。 <BR>“LOCK_EX”表示要取得独占锁定(写入程序),(<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>4.0.1以前版本中设置为2)。 <BR>“LOCK_UN”表示要释放锁定(无论共享或独占),(<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>4.0.1以前版本中设置为3)。 <BR>“LOCK_NB”表示如果你不希望flock()在锁定时堵塞,则给控制参数再<a href="https://www.jb51.cc/tag/jiashang/" target="_blank" class="keywords">加上</a>这个参数 fseek()--在<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针中定位 <BR>语法结构:fseek(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针,移动字元数[,起始位置常数]) <BR><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针:不能用于在fopen()中以“http://”或“ftp://”格式打开所返回的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针。 <BR>移动字元数:为正数时,将<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针向前移动指定个数:为负数时,将<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针向后移动指定个数: <BR>起始位置常数: <BR>SEEK_CUR-设定位置为当前位置。 <BR>SEEK_SET-设定位置等于<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>开头。(默认值) <BR>SEEK_END-设定位置为<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>尾。 <BR>rewind()--倒回<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针的位置,也就是将<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针移向<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的开头位置。 <BR>语法结构:rewind(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针) <BR>注意:如果将<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>以附加(“a”或者“a+”)模式打开,写入<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的任何数据总是会被附加在后面,不管<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>指针的位置 chgrp()--改变<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>所属的组 <BR>语法结构:chgrp(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>,群组<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) filegroup()--取得<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的组 <BR>语法结构:filegroup(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) chmod()--改变<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>模式 <BR>语法结构:chmod(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>,权限常数)755666 chown()--改变<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的所有者 <BR>语法结构:chown(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>,使用者) fileowner()--取得<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的所有者 <BR>语法结构:fileowner(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>posix_getpwuid()来将其解析为<a href="https://www.jb51.cc/tag/yonghuming/" target="_blank" class="keywords">用户名</a>。 copy()--拷贝<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>语法结构:copy(来源<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>,目的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>) <BR>返回类型:bool型,如果成功则返回TRUE,失败则返回FALSE。 <BR>参数说明:将来源<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>拷贝到目的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>。 <BR>unlink()--<a href="https://www.jb51.cc/tag/shanchu/" target="_blank" class="keywords">删除</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>语法结构:unlink(目标<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>) <BR>返回类型:bool型,如果成功则返回TRUE,失败则返回FALSE。 <BR>参数说明:<a href="https://www.jb51.cc/tag/shanchu/" target="_blank" class="keywords">删除</a>指定的目标<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>rename()--<a href="https://www.jb51.cc/tag/zhongmingming/" target="_blank" class="keywords">重命名</a>一个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>或目录 <BR>语法结构:rename(旧<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名,新<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名) <BR>返回类型:bool型,如果成功则返回TRUE,失败则返回FALSE。 <BR>参数说明:尝试把旧<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名<a href="https://www.jb51.cc/tag/zhongmingming/" target="_blank" class="keywords">重命名</a>为新<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名。 <a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>处理 <BR>file_exists()--检查<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>或目录是否存在 <BR>语法结构:file_exists(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:bool型,若存在返回true,否则返回false。 <BR>filesize()--取得<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>大小 <BR>语法结构:filesize(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:返回<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>大小字节数,若出错返回false. <BR>filetype()--取得<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>类型 <BR>语法结构:filetype(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:返回<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>类型。可能的值有fifo,char,dir,block,link,file和unknown。出错则返回false <BR>is_dir()--判断给定<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否是一个目录 <BR>语法结构:is_dir(<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名存在并且是一个目录则返回true,否则返回false。 <BR>is_executable()--判断给定<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否可执行 <BR>语法结构:is_executable(<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>存在且可执行则返回TRUE,否则返回FALSE。 <BR>is_file()--判断给定<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否为一个正常的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>语法结构:is_file(<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>存在且为正常的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>则返回TRUE。 <BR>is_link()--判断给定<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否为一个符号连接 <BR>语法结构:is_link(<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>存在并且是一个符号连接则返回true。 <BR>is_readable()--判断给定<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否可读 <BR>语法结构:is_readable(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>存在并且可读则返回TRUE。 <BR>is_writable()--判断给定的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>名是否可写 <BR>语法结构:is_writable(<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>) <BR>返回类型:如果<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>存在并且可写则返回TRUE。 <BR>实现iterator接口的目录读取 <BR>Iterator接口的标准<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a> <BR>current():返回当前列表(list)中的元素值。 <BR>next():用于在一个列表中向下移动一个位置。 <BR>valid():检测在当前列表中是否还有下一个元素,如果有,返回true,否则返回false。 <BR>rewind():可以访问指定特征的元素列表,在开始操作iterator时,会将指针设置在顶部。 DirectoryIterator<a href="https://www.jb51.cc/tag/zidingyi/" target="_blank" class="keywords">自定义</a>的类 <BR>getATime():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>最后访问时间 <BR>getCTime():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>最后的<a href="https://www.jb51.cc/tag/xiugai/" target="_blank" class="keywords">修改</a>时间 <BR>getGroup():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>所属组(仅UNIX) <BR>getInode():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的节点(仅UNIX) <BR>getOwner():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的宿主(仅UNIX) <BR>getPerms():访问该<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的权限 <BR>getSize():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的大小 <BR>getType():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的类型 <BR>getFileName():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a> <BR>getPath():<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的路径 <BR>isDir():是否是目录 <BR>isExecutable():是否可以执行 <BR>isFile():是否是<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>isLink():是否是软<a href="https://www.jb51.cc/tag/lianjie/" target="_blank" class="keywords">链接</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR>isReadable():是否可读 <BR>isWritable():是否可写 <BR>isDot()<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>分别过滤掉“.”和“..”目录。 <BR>$dname=$_GET["dname"];//<a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a>from表的信息 <BR>if(isset($dname)&&!empty($dname)){//判断变量是否被设置检测一个变量是否为空 <BR>$dir=newDirectoryIterator("{$dname}");//new一个类 <BR>echo$dir->getPath()."//类的<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a> <BR>}else{ <BR>$dir=newDirectoryIterator("D:\\");//newd://目录 <BR>echo$dir->getPath(); <BR>} <BR>$delname=$_GET["del"]; <BR>if(isset($delname)&&!empty($delname)){ <BR>if(unlink("{$dir->getPath()}\\$delname")) <BR>echo"<a href="https://www.jb51.cc/tag/shanchu/" target="_blank" class="keywords">删除</a>成功"; <BR>} while($dir->valid()){ <BR>if($dir->isDir()) <BR>echo"<ahref='file14.php?dname={$dir->getPath()}\\{$dir->current()}'>". <BR>"{$dir->current()}</a><br>"; <BR>else <BR>echo"{$dir->current()}<ahref='#'>复制</a>". <BR>"<ahref='file14.php?del={$dir->current()}'>删除</a><br>"; <BR>$dir->next(); <BR>} 范例2:functionshowdir($iter){//设置一个<a href="https://www.jb51.cc/tag/hanshu/" target="_blank" class="keywords">函数</a><a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>并赋值 <BR>for(;$iter->valid();$iter->next()){//检测目录是否还有下一个目录想下移动一位 <BR>if($iter->isDir()&&$iter->isDot()){//检测是否是目录并过滤掉.和..目录位置 <BR>echo"目录".$iter->current()."<br>";//指向返回列表元素的值 <BR>}else{ <BR>echo$iter->current().$iter->getSize()."字节<br>";反则返回列表的值并查看<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>大小 <BR>} <BR>} <BR>} <BR>showdir(newDirectoryIterator("C:/"));//传参new一个系统默认类 <BR>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// <a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a> <BR>与<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>系统和服务器的交互 <BR><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>`使用目录<a href="https://www.jb51.cc/tag/hanshu/" target="_blank" class="keywords">函数</a>`与<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>系统的交互`使用程序执行<a href="https://www.jb51.cc/tag/hanshu/" target="_blank" class="keywords">函数</a>`与环境变量交互 <BR><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a> <BR>在B/S程序中<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>已经成为一个常用<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a>。其目的是客户可以通过浏览器(Browser)将<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>到服务器(Server)上的指定目录 <BR><a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>中<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>的基础知识 <BR>表单提交`对<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的操作 何为<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>? <BR>为了满足传递<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>信息的需要:HTTP协议实现了<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>机制,从而可以将客户端的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>通过自己的浏览器<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>到服务器上指定目录存放。 HTML规范规定<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>时表单头必须使用 <BR><html> <BR><head><title><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a></title></head> <BR><body> <BR><formaction="todo.<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>"method="post"enctype="multipart/form-data">//返回值post方式<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>表示要<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>一个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a> <BR><inputtype="hidden"name="MAX_FILE_SIZE"value="100000"> <BR><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>:<inputtype="file"name="userfile"> <BR>提交:<inputtype="submit"value="提交<a href="https://www.jb51.cc/tag/chaxun/" target="_blank" class="keywords">查询</a>"> <BR></form> <BR></body> <BR></html> <BR>注意几个特征<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>: <BR>POST<a href="https://www.jb51.cc/tag/fangfa/" target="_blank" class="keywords">方法</a>: <BR>表单最常用的<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a>,向目标<a href="https://www.jb51.cc/tag/yemian/" target="_blank" class="keywords">页面</a>传递变量,我们在<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的时候,会在表单中设置相应的<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>,来完成<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的传递. <BR>enctype="multipart/form-data" <BR>这样服务器就会知道,我们要传递一个<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>,这样服务器可以知道上载的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>带有常规的表单信息。 <BR>MAX_FILE_SIZE <BR>此字段必须在<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>输入字段之前,控制最大的传递<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的大小(字节)——真的可以控制吗? <BR><inputtype="file"name="userfile"> <BR>设置浏览器<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>输入浏览按钮 我们在服务器端的<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>.ini中设置对表单传递的数据进一步判断 <BR>file_uploads=On/Off是否允许<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a> <BR>upload_max_filesize=2M<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的最大大小 <BR>post_max_size=8MPOST数据所允许的最大大小 <BR>表单传递的数据,<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>只是其中的一部分,所以设置时,upload_max_filesize应该小于post_max_size <BR>超级全局数组$_FILES <BR><a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>程序中,需要处理的<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>数据保存在全局数组中$_FILES(超级全局数组) <BR>保存$_FILES数组中的元素,将HTML表单的type="file"<a href="https://www.jb51.cc/tag/biaoji/" target="_blank" class="keywords">标记</a>的<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a>name="userfile"存放在数组中。 <BR>存储在$_FILES['userfile']['name']中的值是:客户端<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>系统的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的<a href="https://www.jb51.cc/tag/mingcheng/" target="_blank" class="keywords">名称</a> <BR>存储在$_FILES['userfile']['type']中的值是:客户端传递的<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的类型 <BR>存储在$_FILES['userfile']['size']中的值是:<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的字节的大小 <BR>存储在$_FILES['userfile']['tmp_name']中的值:<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>被<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>后在服务器存储的临时全路径 <BR>``````````````````````````````````````````` <BR>存储在$_FILES['userfile']['error']中的值是:<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>的<a href="https://www.jb51.cc/tag/cuowu/" target="_blank" class="keywords">错误</a><a href="https://www.jb51.cc/tag/daima/" target="_blank" class="keywords">代码</a>-<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a>4.2以后<a href="https://www.jb51.cc/tag/zengjia/" target="_blank" class="keywords">增加</a>的<a href="https://www.jb51.cc/tag/gongneng/" target="_blank" class="keywords">功能</a> <BR>存储在$_FILES['userfile']['error']中的值 <BR>值为0:表示没有发生任何<a href="https://www.jb51.cc/tag/cuowu/" target="_blank" class="keywords">错误</a>。 <BR>值为1:表示<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>的大小超出了约定值。<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>大小的最大值是在<a href="https://www.jb51.cc/tag/PHP/" target="_blank" class="keywords">PHP</a><a href="https://www.jb51.cc/tag/peizhiwenjian/" target="_blank" class="keywords">配置文件</a>中指定的,该指令是:upload_max_filesize。 <BR>值为2:表示<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a><a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>大小超出了HTML表单隐藏域<a href="https://www.jb51.cc/tag/shuxing/" target="_blank" class="keywords">属性</a>的MAX_FILE_SIZE元素所指定的最大值。 <BR>值为3:表示<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>只被部分<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>。 <BR>值为4:表示没有<a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>任何<a href="https://www.jb51.cc/tag/wenjian/" target="_blank" class="keywords">文件</a>。 <BR>
is_uploaded_file()检测是否是上传文件
move_uploaded_file(临时路径/临时文件名,目的路径/目的文件名)函数将存放在临时目录下的上传文件拷贝出来,存放到指定目录的指定文件名,如果目标存在将会被覆盖。
范例:print_r($_FILES["upfile"]);//将表单提交的系统存放在这
echo"文件名字".$_FILES["upfile"]["name"];//文件名字
if($_FILES["upfile"]["error"]<=1){//错误代码小于1大于1表示有错误
echo"请选择文件";
}
if(is_uploaded_file($_FILES["upfile"]["tmp_name"])){//检测这个文件是否是上传文件文件的临时路径
echo'是上传文件';
move_uploaded_file($_FILES["upfile"]["tmp_name"],"./upload/".$_FILES["upfile"]["name"]);
//将临时文件转移到upload目录文件名为原名
}else{
echo'不是上传文件';
}
文件上传后的临时存放目录 上传的文件被放置到服务器端临时目录:/tmp目录里面命名为一个唯一的,随机生成的临时文件名。注:该文件在程序执行完后将自动被删除掉。在删除前可以像本地文件一样操作。
/tmp目录是默认的上传临时文件存放地点,如果需要更改这个目录:可以编辑/etc/PHP.ini文件FileUploads段的upload_tmp_dir属性值。
当配置文件PHP.ini的register_globals属性被设置成on的情况
<inputtype=filename=myfilename>
将生成全局变量:$myfilename等 ```````````````````````````````````````````````
当需要上传多个文件的情况,有两种实现的解决方法:
使用不同的表单元素
<inputtype=filename=file_a>
<inputtype=filename=file_b>
使用数组格式的表单元素
<inputtype=filename=file[1]>
<inputtype=filename=file[2]>
`````````````````````````````````````````````````
使用目录函数
opendir?--?打开目录句柄
closedir?--?关闭目录句柄
readdir?--?从目录句柄中读取条目
语法格式:$d=opendir("./upload");//打开这个文件目录
while($s=readdir($d)){//循环输出读取到的条目
echo$s."
";
}
closedir($d);//关闭句柄 创建和修改目录
mkdir?--?新建目录
rmdir?--?删除目录
mkdir("D:\up");//创建一个目录
rmdir("up");//删除一个目录 磁盘操作
disk_free_space():统计某个磁盘的剩余空间
disk_total_space():显示逻辑磁盘的容量
echodisk_free_space("D:\")/1024/1024/1024;
echodisk_total_space("D:\")/1024/1024/1024;
getcwd():返回当前脚本所在路径
chdir():类似DOS的cd命令,改变当前路径
echogetcwd();//查看当前脚本路径
chdir("D:\");//改变 使用程序执行函数
exec()函数可以将要执行的命令作为参数。
passthru()结果直接输出显示到浏览器。
system()也是直接输出显示到浏览器,但有返回值 PHPchana课件
php文件处理.rar