php
  • xml
  • compression
  • gzip
  • sitemap
  • 2012-03-22 79 views 2 likes 
    2

    我有這個下面的代碼,它做工精細如何壓縮用PHP站點地圖

     header ("content-type: text/xml"); 
         $xml = '<?xml version="1.0" encoding="UTF-8"?>'; 
         $xml .= '<urlset xmlns="http://www.google.com/schemas/sitepam/0.84">'; 
         $xml .= '<url><loc>'.SiteRoot.'</loc><changefreq>daily</changefreq><priority>1.0</priority></url>'; 
         $xml .= '<url><loc>'.SiteRoot.'/directory</loc><changefreq>daily</changefreq><priority>0.9</priority></url>'; 
         $Query = mysql_query ("SELECT link FROM `om` ORDER BY `link`"); 
         while($row = mysql_fetch_array($Query)) { 
          $xml .= '<url>'; 
          $xml .= '<loc>'.GenerateLink('link',$row['link']).'</loc>'; 
          $xml .= '<changefreq>weekly</changefreq>'; 
          $xml .= '<priority>0.8</priority>'; 
          $xml .= '</url>'; 
         } 
         $xml .= '</urlset>'; 
         echo $xml; 
    

    當我嘗試用MIME頭壓縮它

    header('content-type: application/x-gzip'); 
    header('Content-Disposition: attachment; filename="sitemap.xml.gz"'); 
    

    瀏覽器下載.gz文件,但它不是打開。 WinRAR的給我一個錯誤說:歸檔或者是在未知的格式或損壞

    這是最後的代碼:

    // header ("content-type: text/xml"); 
         header('content-type: application/x-gzip'); 
         header('Content-Disposition: attachment; filename="sitemap.xml.gz"'); 
         $xml = '<?xml version="1.0" encoding="UTF-8"?>'; 
         $xml .= '<urlset xmlns="http://www.google.com/schemas/sitepam/0.84">'; 
         $xml .= '<url><loc>'.SiteRoot.'</loc><changefreq>daily</changefreq><priority>1.0</priority></url>'; 
         $xml .= '<url><loc>'.SiteRoot.'/directory</loc><changefreq>daily</changefreq><priority>0.9</priority></url>'; 
         $Query = mysql_query ("SELECT link FROM `om` ORDER BY `link`"); 
         while($row = mysql_fetch_array($Query)) { 
          $xml .= '<url>'; 
          $xml .= '<loc>'.GenerateLink('link',$row['link']).'</loc>'; 
          $xml .= '<changefreq>weekly</changefreq>'; 
          $xml .= '<priority>0.8</priority>'; 
          $xml .= '</url>'; 
         } 
         $xml .= '</urlset>'; 
         echo $xml; 
    
    +0

    對不起,但你爲什麼要壓縮你的網站地圖? – 2012-03-22 18:21:46

    +1

    壓縮大型站點地圖是一種節省帶寬的快捷方式,並得到大多數主要搜索引擎的支持。 – steveo225 2012-03-22 18:39:30

    +0

    @ChibuezeOpata我的網站地圖非常大。 – kamal 2012-03-22 18:49:09

    回答

    7

    嘗試使用一些內置的gzip功能像gzencode

    echo gzencode($xml); 
    
    +0

    我用'gzecode',這是工作,謝謝。 – kamal 2012-03-22 18:57:32

    +0

    很高興爲您提供幫助,實際上,我現在也在爲我的站點地圖做同樣的工作 – steveo225 2012-03-22 20:07:49

    +0

    @kamal:您能否使用gzencode發佈您的最終sitemap.xml文件 – Karuppiah 2015-07-16 19:15:42

    相關問題