将网页文章内容存放到txt文本里,目的是节省数据库-php(1)

之前www.dxszw.com这个网站的程序是自己写的,可是呢,生成的文章内容是放到数据库里的,结果让数据库比较庞大。其实也不大吧,5000篇文章数据库有20M。主要是我的万网空间,有限制,最大20M……为了省钱,那就改改吧。

1,生成txt目录构架归划。如果把所有文章都放到一个文件夹里的话,显然不好,为什么不好?我是担心会影响请求txt文件速度,不过这个我没有验证过。还是按月存放吧。

下边是dir_check.php 全部程序:

$dir_upload=’uploads/’.date(“Y”).date(“m”);#获得要上传的文件夹
echo $dir_upload;

CreateDir(“../”.$dir_upload);

/*
* 功能:循环检测并创建文件夹
* 参数:$path 文件夹路径
* 返回:
*/
function CreateDir($path){

if (!file_exists($path)){

mkdir($path,0777);

}
else echo “already exists!!”;
}
这样可以在生成txt文件时可以行查看当前月文件夹建立了没有。

下边是从已有数据库文件生成txt文件的程序:

#下边是生成txt文档
for($i=1;$i<=5000;$i++){
$result=mysql_query(“select * from article where id=$i”);
$data=mysql_fetch_array($result);

$content=htmlspecialchars_decode($data[content]);

$fopen=fopen(“$i.txt”,’ab’)or die(“文件不存在”);
fwrite($fopen,$content);
fclose($fopen);
}

对已在库的的数据进行txt生成,strtotime()函数很重要,可对库中任何形式的日期字符重新转换成nuix时间戳,非常不错:

<?php
include(“../configs/config.php”);

#下边是生成txt文档
for($i=1;$i<=6384;$i++){
$result=mysql_query(“select * from article where id=$i”);

$data=mysql_fetch_array($result);
#对日期进行转换
//$date=$data[addtime];
$date=strtotime($data[addtime]);
$date_y=date(“Y”,$date);
$date_m=date(“m”,$date);
$dirname=$date_y.$date_m;
echo $dirname;
CreateDir($dirname);

$content=htmlspecialchars_decode($data[content]);

$fopen=fopen(“$dirname/$i.txt”,’ab’)or die(“文件不存在”);
fwrite($fopen,$content);
fclose($fopen);
}

/*
* 功能:循环检测并创建文件夹
* 参数:$path 文件夹路径
* 返回:
*/
function CreateDir($path){

if (!file_exists($path)){

mkdir($path,0777);

}
else echo “already exists!!”;
}

?>

Technorati :
Del.icio.us :
Zooomr :
Flickr :

2 comments

Leave a Reply