编程爱好者之家
public function xml(){ $articleList = $this->getArticleList(); //自己的获取文章的方法,要改成你自己的方法 $html =''; $html .='<urlset>'; foreach($articleList as $key=>$value){ $html .='<url>'; $html .='<loc>https://www.codelovers.cn/article/'.$value['id'].'.html</loc>'; $html .=' <lastmod>'.$value['create_date'].'</lastmod>'; $html .=' <changefreq>Always</changefreq>'; $html .=' <priority>0.8</priority>'; $html .='</url>'; } $html .='</urlset>'; //最后一个参数是去掉tp字典的根节点,只输出自己的内容 $result = xml($html,200,[],['root_node'=>'xml']); return($result); }
最后输如下:
//有的低版本可能会有问题,直接页面上输出<xml/>,数据为空,解决办法如下
$result = xml([$html],200,[],['root_node'=>'xml']);
但是这样会产生一个问题就是在头部会自动生成 <xml><item id='0'></item>,解决办法如下
1.找到think下的 xml.php下的 dataToXml()方法,找到
然后删除红色圈住的就可以了
2.找到xmlEncode()
然后删除红色圈住的就可以了