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="".str_replace("\n","\n
",$str);
- if($fp=fopen($wfile,"w"))
- {
- if (fwrite($fp,$str) === FALSE) {
- //写入失败
- echo $wfile." cover fail! fwrite fail\n";
- }else{
- echo $wfile." cover success!\n";
- }
- fclose($fp);
- }else{
- //创建文件失败
- echo $wfile." cover fail! fopen fail\n";
- }
- }else{
- //读取失败
- echo $wfile." cover fail! file_get_contents fail\n";
- }
- }
- }
- }
- $d->close();
- ?>
运行:
效果:
end
阅读(2163) | 评论(0) | 转发(0) |