日期:2014-05-17  浏览次数:20439 次

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

  $filepath="C:/Users/Administrator/Desktop/新建文件夹/";
  $readarray=file($filepath."分集梗概.txt");
  $sign1="第";
  $sign2="集"; 
  $nameArray=array();
  if(!$readarray){
  echo "用file函数读取文件失败<br>";
  }  
  else 
  foreach($readarray as $value){
  if(strstr($value,$sign1)&&strstr($value,$sign2))  
  //使用strpos要注意汉字的字节位
  array_push($nameArray,$value);
  //else echo "找不到"; 
  }
  echo sizeof($nameArray)."<br>";
   
  //按序重命名文件
   
  $i=1;
   
  foreach($nameArray as $value){
  $value=trim($value); //有必要
  echo $value."<br>";
  $filename=$filepath."(".$i.")".".txt";
  $value=$filepath.$value.".txt";
  rename($filename,$value);
  $i++;
  if($i>10)break; //文件夹内文件的总数
  }
   
  //映射法重命名文件
   
  echo "<hr>";
?>
-------------------------------------------------------运行结果:
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,到现在还没更正吗?
------解决方案--------------------
是不是需要权限,没有设置对。不是很清楚,难道是楼上