记录一段php代码

in php分类 with 0 comment

事情发生在上周五,比较闲没什么事做,发现同事在改文件,有800多个,需要一个一个的改。
修改的过程是

  1. 先吧一个.doc文件转换成.mht文件(html类型的一种吧)
  2. 然后用记事本打开,在一段代码前面加上-un
  3. 然后再把这个文件转成.doc,这时候这个doc文件就可以修改了
  4. 再把doc里面需要修改的内容改掉,这样就算完成一个文件修改

这个操作要执行800的次,而且操作相同,完全满足机器生产的特征,大量、机械化操作,然后我就想能不能用代码完成其中的1、2、4,第三步因为每个文件不一样,要删除的部分不一样,所以无法用代码操作。但是从整体上来看,如果124能用代码完成,也会大量提高工作效率。

然后我的想法是先批量修改文件为.mht,我觉得去网上查这样的操作一定是有的代码如下:

<?php 
function foreachDir($dirname)
{ 
if(!is_dir($dirname))
{
  echo "{$dirname} not effective dir";
  exit();
}
 $handle=opendir($dirname); //打开目录
 
while (($file = readdir($handle))!==false) //读取目录
{ 
 if($file!="." && $file!='..')
 { 
  if(is_dir($dirname.$file))
 { 
  echo $dirname.$file."<br/>"; 
  //foreachDir($dirname.$file); //如果注释号去掉,将会递归修改文件夹内的文件夹文件
 }
  else
 { 
  echo "--".$dirname."/".$file."<br/>"; 
  $temp = substr($file, strrpos($file, '.')+1); //获取后缀格式
   if ($temp == "doc") 
   {
  $pos = strripos($file,'.'); //获取到文件名的位置
  $filename = substr($file,0,$pos); //获取文件名
  rename($dirname.'/'.$file,$dirname.'/'.$filename.'.mht'); //替换为mht后缀格式。
   }
 } 
 } 
 } 
} 
foreachDir('../traverseMendFilename');
?>

转换很顺利,我先试了5个文件,没有任何问题,然后我再进行第二步,然后就出问题了,我第一步执行的操作有问题,应该是doc文件和mht文件的编码格式不一样,每个字符占用的字节和进制不一样,直接这样修改后坠文件就会出现乱码的情况。懵了,不知道咋办,网上查了很多都需要装第三方库,而且是转成html的,不知道能不能用,今天继续尝试。不过上面的一段代码可以先记录下来,批量转换文件后坠,比如把html文件改成php,量大的话还是很有用的。

810a19d8bc3eb135b642a00ea11ea8d3fc1f44f9.jpg.gif

Responses