dseigqk7443 2012-03-22 17:59
浏览 14
已采纳

如何使用php压缩站点地图

I have this below code and it work fine

        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;

When i try to compress it with mime header

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

Browser download a .gz file but it's not open. winrar give me a error that said: The archive is either in unknown format or damaged

This is the final code :

    //  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;
  • 写回答

1条回答 默认 最新

  • dongzhonggua4229 2012-03-22 18:17
    关注

    Try using some of the built in gzip functions like gzencode

    echo gzencode($xml);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。