❶ php5教程之文件操作
一 引论
在任何计算机设备中 文件是都是必须的对象 而在web编程中 文件的操作一直是web程序员的头疼的地方 而 文件的操作在cms系统中这是必须的 非常有用的 我们经常遇到生成文件目录 文件(夹)编辑等操作 现在我把php中的这些函数做一详细总结并实例示范如何使用 关于对应的函数详细介绍 请查阅php手册 此处只总结重点 和需要注意的地方 (这在php手册是没有的 )( lian )
二 目录操作
首先介绍的是一个从目录读取的函数 opendir() readdir() closedir() 使用的时候是先打开文件句柄 而后迭代列出:
<?php $base_dir = filelist/ ; $fso = opendir($base_dir); echo $base_dir <hr/> ; while($flist=readdir($fso)){ echo $flist <br/> ; } closedir($fso) ?>
这是讲返回文件目录下面的文件已经目录的程序( 文件将返回false)
有时候需要知道目录的信息 可以使用dirname($path)和basename($path) 分别返回路径的目录部分和文件名名称部分 可用disk_free_space($path)返回看空间空余空间
创建命令:
mkdir($path )
是权限码 在非window下可用umask()函数设置
rmdir($path)
将删除路径在$path的文件
dir directory 类也是操作文件目录的重要类 有 个方法 read rewind close 这是一个仿面向对象的类 它先使用的是打开文件句柄 然后用指针的方式读取的 这里看php手册:
<?php$d = dir( /etc/php );echo Handle: $d >handle /n ;echo Path: $d >path /n ;while (false !== ($entry = $d >read())) { echo $entry /n ;}$d >close();?>
输出:
Handle: Resource id # Path: /etc/php apachecgicli
文件的属性也非常重要 文件属性包括创建时间 最后修改时间 所有者 文件组 类型 大小等
下面我们重点谈文件操作
三 文件操作
A 读文件
首先是一个文件看能不能读取(权限问题) 或者存在不 我们可以用is_readable函数获取信息
<?php$file = dirlist php ;if (is_readable($file) == false) { die( 文件不存在或者无法读取 );} else { echo 存在 ;}?>
判断文件存在的函数还有file_exists(下面演示) 但是这个显然无is_readable全面 当一个文件存在的话可以用
<?php$file = filelist php ;if (file_exists($file) == false) { die( 文件不存在 );}$data = file_get_contents($file);echo entities($data);?>
但是file_get_contents函数在较低版本上不支持 可以先创建文件的一个句柄 然后用指针读取全部:
$fso = fopen($cacheFile r ); $data = fread($fso filesize($cacheFile)); fclose($fso);
还有一种方式 可以读取二进制的文件:
$data = implode( file($file));
B 写文件
和读取文件的方式一样 先看看是不是能写:
<?php$file = dirlist php ;if (is_writable($file) == false) { die( 我是鸡毛 我不能 );}?>
能写了的话可以使用file_put_contents函数写入:
<?php $file = dirlist php ; if (is_writable($file) == false) { die( 我是鸡毛 我不能 ); } $data = 我是可鄙 我想要 ; file_put_contents ($file $data); ?>
file_put_contents函数在php 中新引进的函数(不知道存在的话用function_exists函数先判断一下)低版本的php无法使用 可以使用如下方式:
$f = fopen($file w ); fwrite($f $data); fclose($f);
替换之
写文件的时候有时候需要锁定 然后写:
function cache_page($pageurl $pagedata){ if(!$fso=fopen($pageurl w )){ $this >warns( 无法打开缓存文件 );//trigger_error return false; } if(!flock($fso LOCK_EX)){//LOCK_NB 排它型锁定 $this >warns( 无法锁定缓存文件 );//trigger_error return false; } if(!fwrite($fso $pagedata)){//写入字节流 serialize写入其他格式 $this >warns( 无法写入缓存文件 );//trigger_error return false; } flock($fso LOCK_UN);//释放锁定 fclose($fso); return true; }
C 复制 删除文件
php删除文件非常easy 用unlink函数简单操作:
<?php $file = dirlist php ; $result = @unlink ($file); if ($result == false) { echo 蚊子赶走了 ; } else { echo 无法赶走 ; } ?>
即可
复制文件也很容易:
<?php $file = yang txt ; $newfile = ji txt ; # 这个文件父文件夹必须能写 if (file_exists($file) == false) { die ( 小样没上线 无法复制 ); } $result = ($file $newfile); if ($result == false) { echo 复制记忆ok ; } ?>
可以使用rename()函数重命名一个文件夹 其他操作都是这几个函数组合一下就能实现的
D 获取文件属性
我说几个常见的函数:
获取最近修改时间:
<?php $file = test txt ; echo date( r filemtime($file)); ?>
返回的说unix的时间戳 这在缓存技术常用
相关的还有获取上次被访问的时间fileatime() filectime()当文件的权限 所有者 所有组或其它 inode 中的元数据被更新时间 fileowner()函数返回文件所有者
$owner = posix_getpwuid(fileowner($file));
(非window系统) ileperms()获取文件的权限
<?php$file = dirlist php ;$perms = substr(sprintf( %o fileperms($file)) );echo $perms;?>
filesize()返回文件大小的字节数:
<?php
// 输出类似 somefile txt: bytes
$filename = somefile txt ; echo $filename : filesize($filename) bytes ;
?>
获取文件的全部信息有个返回数组的函数stat()函数:
<?php $file = dirlist php ; $perms = stat($file); var_mp($perms); ?>
那个键对应什么可以查阅详细资料 此处不再展开
四 结束语
lishixin/Article/program/PHP/201311/21262
❷ 在php开发中关于rename问题
这个主要是你bbb文件夹存在,当你要重命名aaa成bbb文件夹的时候,就会报错。
解决方法,就是先把bbb文件夹重命名为其它的,等aaa重命名为bbb之后,再重新操作。
如果bbb文件夹没用,就直接删除掉,这样你再操作的时候就不会有问题了
❸ php 上传文件重命名
上传文件或图片进行重命名是我们在php上传中会碰到的一个问题了,在重命名无非就是对你上传的文件生成一个随机的字符串了,包括有Md5,随机,或按时间日期来重命名了,下面我来给大家介绍。
如我们在上传文件页面中如下操作:
$name=$_FILES['userfile']['name'];//将所上传的文件名称赋予name
然后我们要对它进行重命名
//文件名的自动生成
list($usec,$new_name)=explode("",microtime());
if(@$extension_name){//限制文件类型为jpg、gif、png、bmp
move_uploaded_file($tmp_name,$new_dir.'/'.$new_name.'.'.$extension_name);//移动到目标文件夹
echo'上传成功';
这样我们就把文件名以时间日期生成了一个新的文件名了,例:
<formaction="upload_file.php"method="post"
enctype="multipart/form-data">
<labelfor="file">Filename:</label>
<inputtype="file"name="file"id="file"/>
<br/>
<inputtype="submit"name="submit"value="Submit"/>
</form>
以下是我添加的将文件名重命名为系统时间的代码:
<?php$date=date(ymdhis);
//echo($date);
if((($_FILES["uppic"]["type"]=="image/gif")
||($_FILES["uppic"]["type"]=="image/jpeg")
||($_FILES["uppic"]["type"]=="image/pjpeg"))
&&($_FILES["uppic"]["size"]<2000000))
{
if($_FILES["uppic"]["error"]>0)
{
echo"ReturnCode:".$_FILES["uppic"]["error"]."<br/>";
}
else
{
//echo"Upload:".$_FILES["uppic"]["name"]."<br/>";
//echo"Type:".$_FILES["uppic"]["type"]."<br/>";
//echo"Size:".($_FILES["uppic"]["size"]/1024)."Kb<br/>";
//echo"Tempfile:".$_FILES["uppic"]["tmp_name"]."<br/>";
$uptype=explode(".",$_FILES["uppic"]["name"]);
$newname=$date.".".$uptype[1];
//echo($newname);
$_FILES["uppic"]["name"]=$newname;
if(file_exists("pics/".$_FILES["uppic"]["name"]))
{
echo$_FILES["uppic"]["name"]."alreadyexists.";
}
else
{
$_FILES["uppic"]["name"]=
move_uploaded_file($_FILES["uppic"]["tmp_name"],
"pics/".$_FILES["uppic"]["name"]);
echo"<script>alert('上传成功!')</script>";
echo"<script>window.location.href='
}
}
}
else
{
echo"Invalidfile";
}
?>
大家可以参考一下
❹ php复制文件,将文件复制重命名韩文失败。
php复制文件,将文件复制重命名韩文失败。
原因是编码错误,统一是utf-8
❺ 如何在你的网站上提供文件供下载 5种方法来在你的网站上提供文件供下载
目录方法1:使用HTML代码1、如果没有网页,先创建一个HTML网页。2、在服务器上打开网页和文件所在的文件夹。3、上传你想要连接的文件。4、在代码编辑器中打开你想要添加链接的页面。5、在网页上找到你想要添加链接的位置。6、添加链接代码。7、创建下载按钮。8、重命名下载文件。9、保存更改。方法2:使用WordPress编辑器1、在WordPress网站编辑器中打开网页。2、把光标放到出现链接的位置。3、点击“添加多媒体”按钮。4、点击“上传文件”选项卡蠢让,将文件拖拽到窗口中。5、添加文件描述。6、点击“插入到帖子/页面中”按钮,将下载链接插入到光标所在位置。方法3:使用“Weebly”编辑器1、在Weebly编辑器中打开网页。2、选择你想要转换为链接的文本或对象。3、点击“链接”按钮。4、选择“文件”,然后点击“上传文件”。5、选择目标文件。6、发布网页,查看链接。方法4:使用“Wix”编辑器1、在Wix编辑器中打开网站。2、选择你想要转换为链接的文本或图片。3、把选中的对象变成链接。4、从链接选项列表里选择“文档”。5、点击“选择文件”按钮,打开文件上传程序。6、将文件拖拽到上传窗口。7、发布网站。方法5:使用“GoDaddy”1、在GoDaddy网站编辑器中打开网页。2、选择你想要转换为链接的文本或对象。3、将选中的文本或对象创建为链接。4、点击“链接(URL)”下方的红色箭头,选择“上传”。5、点击“浏览”按钮,找到你想要上传的文件。6、上传完文件后,点击“插入”。7、点击“保存”按钮创建链接。8、点击“发布”保存网页更改。访客都希望网站的创建者能够提供文件的下载链接。事实上,创建者们会通过多种方式来满足用户这一需求。许多网站创建和编辑工具都能够在你上传文件的同时创建文件链接,让文件变得可供下载,比如GoDaddy、WordPress和Weebly。如果使用“scratch”创建网站,还可以使用简单的HTML网页代码来为存储在服务器上的文件创建下载链接。
方法1:使用HTML代码
1、如果没有网页,先创建一个HTML网页。你需要向网页中添加文件的下载链接。因此,你需要拥有一个网站。如果没有创建好的网站,可以创建一个简单的网页来测试下载链接。查阅用HTML创建一个简单网页,了解详细信息。
2、在服务器上打开网页和文件所在的文件夹。将文件放到网页文件所在的文件夹,这是最简单的链接方式。使用文件管理器控制面板或FTP程序里的文件浏览器,进入网页文件所在的文件夹,然后准备向网页添加链接。由于之前曾向服务器上传过网页文件,因此,FTP客户端应该已经连接到网页服务器。如果没有连接服务器,查阅如何使用FTP,了解将FTP客户端连接到服务器的方法。
如果网站服务器有在线控制面板,则可以通过网页管理器界面直接访问服务器文件。你需要以管理员身份登录管理器,进入控制面板后,选择“文件管理器”选项。
如果使用网站创建工具来创建网站,比如WordPress、Weebly或Wix,查阅下方对应于各平台的创建方法。
3、上传你想要连接的文件。你可以上传多种类型的文件,包括pdf、ZIP等文件。注意,有些服务器会限制上传文件的大小,较大的文件会占用大部分网速。有些浏览器会阻止访客下载EXE或DLL文件,以拦截恶意程序和广告软件。如果想要使用FTP程序上传文件,将文件拖拽到FTP窗口中你想要上传到的文件夹中。接着系统会立刻开始上传文件。上传速度会稍慢于下载速度,几分钟后才会完成上传。
如果使用文件管理器的虚拟控制面板,点击窗口顶部的“上传”按钮,浏览计算机,找到你想要上传的文件。较大的文件需要橘派花一些时间才能上传到服务器。
4、在代码编辑器中打开你想要添加链接的页面。上传好文件后,你需要在网页上添加链接。打开你想要添加链接的网页文件。在文件管理器控制面板中,双击HTML文件,在内置的页面编辑器中打开它。如果使用FTP,右键点击HTML文件,使用“打开方式”选项来选择在代码编辑器或文本编辑器中将它打开。
5、在网页上找到你想要添加链接的位置。将光标放到想要插入下载链接的位置,可以是正文的一个段落,也可以是页面底部或其它位置。
6、添加链接代码。输入下载链接的网页代码。这样,带伍局用户在点击链接后,就会立刻开始下载。如果下载文件位于HTML文件所在的文件夹,那么你需要使用文件名称和扩展名。如果位于不同的文件夹,还需要添加文件夹结构。
<!-- Uploaded file in same location as HTML file --><a href="examplefile.pdf" download>Link text</a><!-- Uploaded file in different location than HTML file --><a href="/path/to/file/examplefile2.jpg" download>Link text</a><a> download属性不适用于Safari、IE或Opera Mini浏览器。使用这些浏览器的用户会在新页面中打开文件,并需要手动保存它。
7、创建下载按钮。你可以使用图片,而不是文本来创建下载链接。这需要使用网页服务器上已有的按钮图片。
<a href="examplefile.pdf" download><img src="/images/downloadbutton.jpg"></a>
8、重命名下载文件。如果确定<a> download属性,可以在他人下载文件时更改文件的名称。这样能方便用户识别下载的文件。
<a href="083116sal_rep.pdf" download="August 31 2016 Sales Report">Download the report</a>
9、保存更改。更改完代码后,保存HTML文件,如果需要,可以重新上传它。这时候,你应该能够在网站上看到新的下载按钮或链接。
方法2:使用WordPress编辑器
1、在WordPress网站编辑器中打开网页。如果使用WordPress来管理和创建网站,那么可以用程序内置工具添加链接。使用管理员账户登录“WordPress”。
2、把光标放到出现链接的位置。可以是正文的中央,也可以创建新的一行。
3、点击“添加多媒体”按钮。它位于页面顶部的工具栏里。
4、点击“上传文件”选项卡,将文件拖拽到窗口中。你可以上传各种类型的文件,但是,“WordPress”程序会根据你的账户类型限制文件大小。由于大部分上传速度比下载速度更慢,因此,上传文件需要花费一段时间。
5、添加文件描述。在“添加多媒体”窗口的文件下方输入文件描述。这段文本会显示为下载链接文本。
6、点击“插入到帖子/页面中”按钮,将下载链接插入到光标所在位置。注意,它会连接到附件页面,而不是实际的文件。这就是WordPress程序的缺陷。
方法3:使用“Weebly”编辑器
1、在Weebly编辑器中打开网页。登录Weebly网站,在编辑器中打开网页。
2、选择你想要转换为链接的文本或对象。你可以高亮标记文本或选择一张图片,把它变成文件的下载链接。
3、点击“链接”按钮。选中文本后,找到链接按钮。它看上去像是一个链条,位于文本编辑器顶部。选中图片后,点击图片控制面板里的“链接”。
4、选择“文件”,然后点击“上传文件”。打开文件浏览器。
5、选择目标文件。选中后,开始上传文件。大众用户最多上传5MB的文件,会员可以上传100MB的文件。
6、发布网页,查看链接。上传完文件后,就可以使用链接了。点击“发布”按钮,保存网页更改。此时,访客可以点击链接,下载文件了。
方法4:使用“Wix”编辑器
1、在Wix编辑器中打开网站。如果使用Wix创建和管理网站,先登录网站,在编辑器中打开网页。
2、选择你想要转换为链接的文本或图片。你可以将网页上的文本或图片创建为下载链接。
3、把选中的对象变成链接。文本和图片的操作有点差异:文本 - 点击“文本设置”窗口里的链接按钮。按钮看上去像是一个链条,这会打开“链接”菜单。
图片 - 在“图片设置”窗口里的“点击图片”菜单中,选择“打开链接”。点击“链接是做什么的?”部分里的“添加链接”。打开链接菜单。
4、从链接选项列表里选择“文档”。你可以上传各种各样的文档文件。
5、点击“选择文件”按钮,打开文件上传程序。
6、将文件拖拽到上传窗口。你只能上传DOC、PDF、PPT、XLS和ODT文件,以及它们的子格式文件。文件大小在15MB以内。
7、发布网站。上传文件后,发布网站。点击右上角的“发布”按钮,保存网页更改,测试下载链接。
方法5:使用“GoDaddy”
1、在GoDaddy网站编辑器中打开网页。 如果使用GoDaddy网站创建网页,先登录网站,在编辑器中打开网页。
2、选择你想要转换为链接的文本或对象。你可以将网页上的任何对象创建为下载链接,包括文本框中的文本。如果想要创建下载按钮,点击左侧菜单里的“按钮”选项,插入按钮。
3、将选中的文本或对象创建为链接。如果选中了一个物体,点击“设置”按钮打开菜单。如果选中文本,点击文本格式工具里的“链接”按钮,按钮的图标像是一个链条。
4、点击“链接(URL)”下方的红色箭头,选择“上传”。这允许你选择想要上传的文件。
5、点击“浏览”按钮,找到你想要上传的文件。文件的大小最大为30MB。你无法上传HTML、PHP、EXE、DLL和其它可能有危险的文件类型。
6、上传完文件后,点击“插入”。完成上传后,窗口中文件的旁边会出现一个对勾。
7、点击“保存”按钮创建链接。点击“保存”,将创建的文本或对象链接应用到文件。
8、点击“发布”保存网页更改。创建链接后,访客可以点击链接下载文件。