thinkphp6返回xml类型的百度sitemap数据

程序猿 2021-02-11 11:43:14 1368浏览 加载中

今天心血来潮想看年thinkphp返回原xml数据是怎样的,其实是想做一个百度xml类型的网站地图,废话不多说开整。

thinkphp提供的有xml助手函数,直接return就行,随便写点测试数据。

public function index()
{
    $temp = [];
    for ($i=1;$i<10;$i++) {
        $data["uslset"]["url"]["loc"] = "https://www.tipphp.com";
        $data["uslset"]["url"]["changefreq"] = "always";
        $data["uslset"]["url"]["priority"] = "1";
        $temp[] = $data;
    }
    return xml($temp);
}

自认为写的很漂亮的代码,结果却啪啪打脸,为什么返回的是这样的……

QQ截图20210211113715.png

仔细观察发现自动加了think的根节点和item的子节点还有一个ID,于是就扒了扒源码,发现在返回的时候是可以自己定义根节点和子节点的,修改代码如下

public function index()
{
    $temp = [];
    for ($i=1;$i<10;$i++) {
        $data["loc"] = "https://www.tipphp.com";
        $data["changefreq"] = "always";
        $data["priority"] = "1";
        $temp[] = $data;
    }
    return xml($temp,200,[],["root_node"=>"uslset","item_node"=>"url","item_key"=>""]);
}

完善解决,想用thinkphp做百度sitemap的可以参考下,希望能帮到你。

标签: thinkphp sitemap
最后修改:2024-04-24 00:32:36

非特殊说明,本博所有文章均为博主原创。