编程爱好者之家
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()

然后删除红色圈住的就可以了
