事情发生在上周五,比较闲没什么事做,发现同事在改文件,有800多个,需要一个一个的改。
修改的过程是
- 先吧一个.doc文件转换成.mht文件(html类型的一种吧)
- 然后用记事本打开,在一段代码前面加上-un
- 然后再把这个文件转成.doc,这时候这个doc文件就可以修改了
- 再把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,量大的话还是很有用的。
本文由 adminstone 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 31, 2017 at 09:05 am