Heim >Backend-Entwicklung >PHP-Tutorial >php的rename函数用不了,该怎么解决

php的rename函数用不了,该怎么解决

WBOY
WBOYOriginal
2016-06-13 10:17:551312Durchsuche

php的rename函数用不了
//保存为UseFile5_for_rename.php

  $filepath="C:/Users/Administrator/Desktop/新建文件夹/";
  $readarray=file($filepath."分集梗概.txt");
  $sign1="第";
  $sign2="集"; 
  $nameArray=array();
  if(!$readarray){
  echo "用file函数读取文件失败
";
  }  
  else 
  foreach($readarray as $value){
  if(strstr($value,$sign1)&&strstr($value,$sign2))  
  //使用strpos要注意汉字的字节位
  array_push($nameArray,$value);
  //else echo "找不到"; 
  }
  echo sizeof($nameArray)."
";
   
  //按序重命名文件
   
  $i=1;
   
  foreach($nameArray as $value){
  $value=trim($value); //有必要
  echo $value."
";
  $filename=$filepath."(".$i.")".".txt";
  $value=$filepath.$value.".txt";
  rename($filename,$value);
  $i++;
  if($i>10)break; //文件夹内文件的总数
  }
   
  //映射法重命名文件
   
  echo "


";
?>
-------------------------------------------------------运行结果:
86
第1集 洪太尉误走妖魔

Warning: rename((1).txt,第1集 洪太尉误走妖魔.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第2集 石碣村七星聚义

Warning: rename((2).txt,第2集 石碣村七星聚义.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第3集 九纹龙私走延安府

Warning: rename((3).txt,第3集 九纹龙私走延安府.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第4集 鲁提辖拳义助金翠莲

Warning: rename((4).txt,第4集 鲁提辖拳义助金翠莲.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第5集 拳打镇关西

Warning: rename((5).txt,第5集 拳打镇关西.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第6集 鲁达剃度文殊寺

Warning: rename((6).txt,第6集 鲁达剃度文殊寺.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第7集 豹子头误入白虎堂

Warning: rename((7).txt,第7集 豹子头误入白虎堂.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第8集 倒拔垂杨柳

Warning: rename((8).txt,第8集 倒拔垂杨柳.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第9集 大闹野猪林

Warning: rename((9).txt,第9集 大闹野猪林.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
第10集 林冲棒打洪教头

Warning: rename((10).txt,第10集 林冲棒打洪教头.txt) [function.rename]: No error in R:\Program Files\AppServ\www\filetest\UseFile5_for_rename.php on line 30
----------------------------

/*
  因为当前路径为UseFile5_for_rename.php文件路径,而我想修改$filepath目录下的10个文件:

  原名为(i).txt (i=1,2,3...,10);

  如果把文件剪切在当前路径下用:

  $filename="(".$i.")".".txt";
  $value=$value.".txt";
  rename($filename,$value);
  可以实现

  那为什么在绝对路径下不可以呢?
*/

------解决方案--------------------
这好像是 php5.3的一个bug,到现在还没更正吗?
------解决方案--------------------
是不是需要权限,没有设置对。不是很清楚,难道是楼上说的?
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn