今天心血來潮想看年thinkphp返回原xml數(shù)據(jù)是怎樣的,其實(shí)是想做一個(gè)百度xml類型的網(wǎng)站地圖,廢話不多說開整。
thinkphp提供的有xml助手函數(shù),直接return就行,隨便寫點(diǎn)測(cè)試數(shù)據(jù)。
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); }
自認(rèn)為寫的很漂亮的代碼,結(jié)果卻啪啪打臉,為什么返回的是這樣的……
仔細(xì)觀察發(fā)現(xiàn)自動(dòng)加了think的根節(jié)點(diǎn)和item的子節(jié)點(diǎn)還有一個(gè)ID,于是就扒了扒源碼,發(fā)現(xiàn)在返回的時(shí)候是可以自己定義根節(jié)點(diǎn)和子節(jié)點(diǎn)的,修改代碼如下
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的可以參考下,希望能幫到你。