php中文件删除函数unlink用法

unlink是用来删除文件的它也可以删除指定文件了,此函数支持相对路径删除与绝对路径删除,但它不能删除目录,下面一起来看unlink() 函数的一些用法.

用法:nlink() 函数删除文件.

若成功,则返回 true,失败则返回 false.

语法:unlink(filename,context)

php示例,代码如下:

  1. $tmpdata = $this->_agency_mod->find ( intval ( $value ) );
  2. $img = $tmpdata [$value] ['agency_image'];
  3. if(!emptyempty($img)){
  4. $img = '../data/agency/' . $img;
  5. if (file_exists ( $img )) {
  6. unlink ( $img );
  7. }
  8. }

首先找到该条目,查询条目的内容,包括图片链接地址,有了地址,我们根据这个图片路径,使用unlink函数删除该图片文件,注意,该图片路径的目录要有可读写权限.

php官方示例,代码如下:

  1. <?php
  2. $fh = fopen('test.html', 'a');
  3. fwrite($fh, '<h1>Hello world!</h1>');
  4. fclose($fh);
  5. //开源代码phpfensi.com
  6. unlink('test.html');
  7. ?>

w3school示例,代码如下:

  1. <?php
  2. $file = "test.txt";
  3. if (!unlink($file))
  4. {
  5. echo ("Error deleting $file");
  6. }
  7. else
  8. {
  9. echo ("Deleted $file");
  10. }
  11. ?>

删除中文名称的文件失败.

Warning: unlink(user_logo/d4d84f383714d5f3.jpg) [function.unlink]: No such file or directory in

文件名是中文命名的;用is_file()检测出是false,但是文件是存在的,不知道怎样才能用unlink把这个文件删除了,用include包含文件时,也无法读取文件,文件不是空的,代码如下:

  1. if(file_exists($fn)){//存在该文件
  2. //todo 删除
  3. }

如果是中文可能有点问题,现在要解决的是is_file或unlink对文件名中有中文的文件的识别,只要能识别出来就可以删除了.

应该是文件名编码的问题,你可以试试unlink(iconv('gb2312','utf-8','新建文本文档.txt'));