txt文件阅读不是很方便,对于超长的行,还得自动换行,行与行之间间隔太小,背景为白色。
本文介绍的程序能够批量把指定目录下的txt转化为htm文件,htm文件用浏览器打开后,根据txt文件的换行一样,且能够自动换行,字号为16px,行高为22px,背景色为淡蓝。
感兴趣的朋友,可以参考下。
<?php
/*
批量把某目录下的所有.txt文件转化为对应的htm文件,该htm文件包含有方便阅读的css样式
生成的htm文件放在同一目录下htm目录下
参数1:要转化的目录的路径
执行 php txt2htm.php "C:txt"
php txt2htm.php "/tmp/txt/"
php txt2htm.php .
*/
$basedir=$argv[1];
if(!$basedir||!is_dir($basedir))
{
die("please input dir.n");
}
//改变工作目录
chdir($basedir);
$d = dir(".");
//创建输出目录
$outputdir="./htm/";
if(!is_dir($outputdir)){
mkdir($outputdir, 0700);
}
//判断是否创建成功
if(!is_dir($outputdir))
{
die("cannot mkdir.n");
}
while (false !== ($entry = $d->read()))
{
//判断是不是文件
if(is_file($entry))
{
$filename=strtolower($entry);
//判断是不是txt文件
if(stristr($filename,".txt"))
{
$wfile=$outputdir.basename($filename,".txt").".htm";
//若是文件已经存在,则跳过
if(file_exists($wfile))
{
echo "**********".$wfile." is exists ,skip this file**************n";
continue;
}
if($str=file_get_contents($entry))
{
//写入样式,和换行
$str="<body style='font-size:16px;line-height:22px;background-color:#E7F4FE;'>".str_replace("n","n<br>",$str);
if($fp=fopen($wfile,"w"))
{
if (fwrite($fp,$str) === FALSE) {
//写入失败
echo $wfile." cover fail! fwrite failn";
}else{
echo $wfile." cover success!n";
}
fclose($fp);
}else{
//创建文件失败
echo $wfile." cover fail! fopen failn";
}
}else{
//读取失败
echo $wfile." cover fail! file_get_contents failn";
}
}
}
}
$d->close();
?>
运行:
效果: