批量生成静态,自定义静态页面的文件名
发布于:2022-01-17 09:50:54
#1 xiaoq
求助!
我想实现批量生成静态,并按照文章的id来命名,但是我测试过一天晚上,不知道怎么搞,帮帮忙。!
代码如下
//生成静态
function test_html(){ // 测试spHtml生成静态页面的方法
echo "开始生成新闻内容页面...
";
$urls = array();
$news = spClass("article_list");
if( $result = $news->findAll("pid=2") ){ // 获取到全部的留言来进行spUrl的构造
foreach($result as $value){ // 循环
$urls = array( // 请注意这里数组的嵌套
array( // 第一个页面
array("main", "show", array('id'=>$value['id'])), '/myname/news_'.$value['id'].'.html'
),
//.......
);
}
}
spClass('spHtml')->makeAll($urls); // 使用makeAll来制作
echo "新闻内容页面生成完毕!";
}
我这个生成静态只能生成一个文件,并且生成的文件名是以数字命名,麻烦帮看看改怎么改。谢了
2011-05-20 10:03:12
#2 xiaoq
我想用循环来生成页面,该怎么写,如果可以的话,麻烦贴一下代码
2011-05-20 10:12:15
#3 jake
看教程
http://speedphp.com/sphtml-usage.htmlmakeAll那段代码是 $url[] 而不是 $url,另外你嵌套多一层是什么意思呢?建议是按教程做就行。
2011-05-20 18:43:28
#4 xiaoq
//生成静态
function test_html(){ // 测试spHtml生成静态页面的方法
echo "开始生成新闻内容页面...
";
$news = spClass("article_list");
if( $result = $news->findAll("pid=2") ){ // 获取到全部的留言来进行spUrl的构造
foreach($result as $value){ // 循环
$urls[] = array(
array('news','show',array('id'=>$value[id]), 'myname/'.$value[id].'.html') // 这里和spUrl的参数是相同的
);
}
}
spClass('spHtml')->makeAll($urls); // 使用makeAll来制作
echo "新闻内容页面生成完毕!";
}
我改回这样了,可以批量生成,但是文件名和路径不对,文件名还是以默认的来生成
2011-05-21 11:46:57
#5 xiaoq
$urls[] = array(
array('news','show',array('id'=>$value[id])), 'myname/'.$value[id].'.html' // 这里和spUrl的参数是相同的
);
刚看错了,是改成这样了,但是还是这样,以默认的路径和文件名生成
2011-05-21 11:51:38
#6 jake
生成一次后,如果想重新生成,要先把tmp下面全部文件删除,否则只能按原来路径生成。
2011-05-21 20:49:35
#7 xiaoq
:victory:谢谢啦,终于可以了,哈
2011-05-23 11:42:12