今天心血來潮想看年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);
}自認為寫的很漂亮的代碼,結果卻啪啪打臉,為什么返回的是這樣的……

仔細觀察發現自動加了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的可以參考下,希望能幫到你。

