||||| 0 I Like It! |||||

一、文章列表问题:
在数据库中创建字段(如:id、title、filename,分别存放文章的ID号、标题、链接地址),然后在发表文章时将自动生成的文章标题、链接地址存入数据库。
创建模板文件,在要放置文章列表的地方加入标记{*articlelist*}
利用PHP打开模板文件,把模板中的待处理标记(如:{*articlelist*})替换成从数据库中取得的数据
模板页3.html

<html>
<head>
    <title>{*title*}</title>
</head>
<body>
    this is a {*file*} file's templates
    <br /><br /><br /><br />
    <div>
        {*articlelist*}
    </div>
</body>
</html>

PHP处理页3.php

<?php
$title='我的第三个测试模板';
$file='Lensen\' Space,author:xinphome@gmail.com';

$fp=fopen('3.html','r');
$content=fread($fp,filesize('3.html'));
$content=str_replace('{*file*}',$file,$content);
$content=str_replace('{*title*}',$title,$content);

$root='./';
$list='';

//链接服务器
$connection=mysql_connect($dbhost,$dbuser,$dbpw);
$db=mysql_select_db($dbname);
$sql='select id,title,filename from article';
$query=mysql_query($sql);
while($result=mysql_fetch_array($query)) {
    $list.='<a href=\''.$root.$result['filename'].'\' target=\'_blank\'>'.$result['title'].'</a><br>';
}

$close=mysql_close($connection);    //关闭数据库链接

$content=str_replace("{*articlelist*}",$list,$content);
//生成列表结束
//echo $content;

$filename='created_3.html';
$handle=fopen($filename,'w');    //打开文件指针,若没有则创建之

/*
检查文件是否被创建且可写
*/
if(!is_writable($filename)) {//is_writable() = is_writeable()
    die("文件:".$filename."不可写,请检查其属性后重试!");
}

if(!fwrite($handle,$content)) {
    die("生成文件".$filename."失败!");
}

fclose($handle);    //关闭指针

exit("创建文件".$filename."成功!");
?>

二、分页问题
在我们指定分页时,我们要查询某子频道文章的条数($allpage),还要确定每页显示的条数(如:$onepage=20),然后在一个for循环中生成每一页:
模板页4.html

<html>
<head>
    <title>{*title*}</title>
</head>
<body>
    this is a {*file*} file's templates
    <br /><br /><br /><br />
    <div>
        {*articlelist*}
    </div>
</body>
</html>

PHP处理页4.php

<?php
$title="我的第四个测试模板";
$file='Lensen\'s Space,author:xinphome@gmail.com';

$fp=fopen('4.html','r');
$content_opened=fread($fp,filesize('4.html'));
$content_opened=str_replace('{*file*}',$file,$content_opened);
$content_opened=str_replace("{*title*}",$title,$content_opened);

$onepage=3;
//连接数据库--查询数据
$connection=mysql_connect('localhost','root','');
$db=mysql_select_db('php');
$sql='select id from article';
$result=mysql_query($sql);
$num=mysql_num_rows($result);
$allpage=ceil($num/$onepage);

for($i=0; $i<$allpage; $i++) {
    if($i==0) {
        $indexpath='index.html';
    } else {
        $indexpath='index_'.$i.'.html';
    }
    $content=$content_opened;
    $start=$i*$onepage;
    $list='';
    $sql_for_page="select id,title,filename from article limit $start,$onepage";
    $result_for_page=mysql_query($sql_for_page);
    while($row=mysql_fetch_array($result_for_page)) {
        $list.='<a href=\''.$root.$row['filename'].'\' target=\'_blank\'>'.$row['title'].'</a><br>';
    }
    
    $content=str_replace("{*articlelist*}",$list,$content);
    $content.=$start;
    
    if(is_file($indexpath)) {
        @unlink($indexpath);    //若文件已存在,则删除
    }
    
    $handle=fopen($indexpath,'w');    //打开文件指针,没有则创建
    
    //检查文件是否被创建且可写
    if(!is_writeable($indexpath)) {
        echo "文件:".$indexpath."不可写,请检查其属性后重试!";    //可以修改echo为die
    }
    
    //将信息写入文件
    if(!fwrite($handle,$content)) {
        echo "生成文件".$indexpath."失败!";    //可以修改echo为die
    }
    
    fclose($handle);    //关闭指针
}

fclose($fp);
die("生成分页文件完成,如生成不完全,请检查文件权限系统后重新生成!");

?>