php
2013-12-22 62 views 0 likes 
0

這是我的代碼來創建XML站點地圖。但問題是,當它創建xml文件時,它不包括<?xml version="1.0" encoding="UTF-8"?>。它包括我函數中的每個標記wirteen,除了一個。PHP站點地圖生成器帶標記

// this variable will contain the XML sitemap that will be saved in $xmlfile 
    $xmlsitemap = '<?xml version="1.0" encoding="UTF-8"?> 
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; 

    $xmlfile=array('sitemapinternal.xml'); 

    internalSiteMap($xmlsitemap, $xmlfile[0]); 


    //za one vijesti koje su unutar mog sajta /vijesti/kategorija/jSFh8 
    function internalSitemap($xmlsitemap, $xmlfile) 
    { 
     // Define and perform the SQL SELECT query 
     $sql = "SELECT * FROM table"; 
     $result = $mysqli->query($sql); 

     // If the SQL query is succesfully performed ($result not false) 
     if($result !== false) 
     { 
      // Parse the result set, and add the URL in the XML structure 
      while($red=$result->fetch_assoc()) 
      { 
       $xmlsitemap .= 
       '<url> 
       <loc>http://www.example.com</loc> 
       <priority>0.5</priority> 
       <changefreq>yearly</changefreq> 
       <lastmod>'.date('Y-m-d', strtotime($red['datum'])).'</lastmod> 
       </url>'; 
      } 
     } 

     $xmlsitemap .= '</urlset>'; 
     file_put_contents($xmlfile, $xmlsitemap);   // saves the sitemap on server 
    } 
+0

'$ xmlsitemap'變量在函數中不可用。將其移入函數內部或將其作爲函數參數傳遞。閱讀更多關於[函數範圍](http://www.php.net/manual/en/language.variables.scope.php)。 –

+0

一切正常,因爲這是代碼的一部分。我發送$ mysqli作爲參數。但主要的問題是,它不包含這行產生的.xml文件中的<?xml version =「1.0」encoding =「UTF-8」?>。我將$ xsitesitemap作爲函數參數 – FosAvance

+0

嘗試連接:'$ xmlsitemap ='<'。 '?xml version =「1.0」encoding =「UTF-8」?' 。 '>';' –

回答

0

那麼愚蠢的我。 我應該做的就是在瀏覽器中查看該XML文件的源代碼,並且標籤在那裏。

相關問題