2015-09-05 63 views
1

我想以下this答案笨 - 站点地图错误

这里创建我笨的应用程序的站点地图是我的控制器方法:

public function siteMap() { 

    $this->load->helper('url'); 

    $urls = array("test"); 

    $data['urls'] = $urls; 
    $data['frontend'] = $this->getFronendItems(); 

    $this->load->template('front/site_map.php', $data); 

} 

而我的观点:

<?php header('Content-type: text/xml'); ?> 
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?> 

<url> 
    <loc><?= base_url() ?></loc> 
    <priority>1.0</priority> 
</url> 

<?php foreach($urls as $url) { ?> 
<url> 
    <loc><?= base_url() . $url ?></loc> 
    <priority>0.5</priority> 
</url> 
<?php } ?> 

这引起以下错误:

This page contains the following errors:

error on line 41 at column 8: Opening and ending tag mismatch: link line 0 and head

试图删除标题和URL只是呼应在屏幕上的字符串。我究竟做错了什么 ?

回答

0

您应该始终在任何视图文件上方放置一个标头,通常我将其放置在控制器方法的顶部。

public function siteMap() { 
    header("Content-Type: text/xml;charset=iso-8859-1"); 

    $this->load->helper('url'); 

    $urls = array("test"); 

    $data['urls'] = $urls; 
    $data['frontend'] = $this->getFronendItems(); 

    $this->load->template('front/site_map.php', $data); 

} 
在视图文件

,添加

<?php print '<?xml version="1.0" encoding="utf-8"?>';?> 
<?php print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';?> 

<url> 
    <loc><?=base_url()?></loc> 
    <priority>1.0</priority> 
</url> 

<?php foreach($urls as $url) { 
    ?> 
    <url> 
     <loc><?=base_url().$url?></loc> 
     <priority>0.5</priority> 
    </url> 
    <?php 
} 
?> 

<?php print '</urlset>';?> 

这是我究竟该怎么办我的地图。

+0

仍然收到相同的错误:(我使用模板,因为我有共同的页眉和页脚的所有意见 – stackUnderflow

+0

什么是第41行第8列的页面? – timothymarois