之前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!!”;
}
?>
TXT读取慢吧,数据多了就没有数据库好了。
万网空间的数据库只有20m,没办法啊。为了省钱……