phpmywind程序实现自动生成sitemap.xml站点地图文件

Joson 2020-12-11 10:48:38 510 抢沙发

公司网站采用的是phpmywind程序进行的二次开发,程序本身并没有实现网站站点地图的功能,在网上找了很久,基本都是一些用户发布的需求,以及并非为.xml格式的站点地图教程,像html的文件这个还是比较好弄的,建个sitemap.php文件编写程序代码和SQL数据库语言,再加上伪静态一下就能搞定了,但是相对生成sitemap.xml格式的文件还是相对困难些(仅针对不会代码的小白或SEO人员)。

image.png

起初,我也是不会的,当时用的是伪静态的html格式,主要是自己没有重心去优化处理这个,所以就搁置了好久,今天在优化网站时又想起了这件事,所以还是必须得处理好,以下是实现的效果图(图中域名已隐藏):


image.png

image.png


<mobile:mobile type="pc,mobile"/>

因公司网站以被我重新进行过全新开发,采用的HTML5自适应,所以这里我采用了百度的移动Sitemap协议,用于将网址提交给移动搜索收录。


百度移动Sitemap协议是在标准Sitemap协议基础上制定的,增加了<mobile:mobile/>标签,它有四种取值:

<mobile:mobile/> :移动网页

<mobile:mobile type="mobile"/> :移动网页      

<mobile:mobile type="pc,mobile"/>:自适应网页

<mobile:mobile type="htmladapt"/>:代码适配


无该上述标签表示为PC网页


下面,开始正式讲phpmywind实现自动生成sitemap.xml文件的方法

1、在网站根目录下新建一个php文件,可自定义命名,这里我命名为site.php;

2、打开新建的php文件,配置全局信息,参考程序的其他php文件头部的配置,然后加上站点地图xml文件头部信息,代码如下:

<?php
    require(dirname(__FILE__).'/include/config.inc.php');

    $str = '<?xml version="1.0" encoding="utf-8"?>'.PHP_EOL;
    $str .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9/" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">'.PHP_EOL;
?>
.PHP_EOL 为PHP换行符


3、配置头部信息后,还需配置xml文件公共尾部信息,及生成sitemap.xml的代码,如下:

<?php
    $str .= '</urlset>';
    $file = fopen($_SERVER['DOCUMENT_ROOT'] . '/sitemap.xml', 'w');
    if($file){
        fwrite($file, $str);
        if(fclose($file)) {
            echo '已成功生成Sitemap地图,立即查看:<a href="'.$cfg_weburl.$cfg_webpath.'sitemap.xml" target="_blank">sitemap.xml</a>';
        }else{
            echo '更新失败';
        }
    } else {
        echo '更新失败';
    }
?>


4、配置sitemap.xml文件头尾后,就差中间统一样式代码了,这时就可以使用SQL数据库语言实现循环网站所有连接,这里以新闻资讯的数据表为例,循环代码如下:

<?php
    $tbname = '#@__数据表名称';//新闻中心
    $dosql->Execute("SELECT id,classid FROM `$tbname` WHERE checkinfo=true ORDER BY id DESC LIMIT 0,10000");
    while($row = $dosql->GetArray()){
        $str .= '<url>'.PHP_EOL;
        $str .= '<loc>'.$cfg_weburl.$cfg_webpath.'newsshow-'.$row['classid'].'-'.$row['id'].'-1.html</loc>'.PHP_EOL;
        $str .= '<mobile:mobile type="pc,mobile"/>'.PHP_EOL;
        $str .= '<lastmod>' . date('Y-m-d', time()) . '</lastmod>'.PHP_EOL;
        $str .= '<changefreq>daily</changefreq>'.PHP_EOL;
        $str .= '<priority>0.8</priority>'.PHP_EOL;
        $str .= '</url>'.PHP_EOL;
    }
?>

5、编写好代码后,通过访问site.php文件让它自动实现生成一个sitemap.xml文件,然后访问该文件查看是否正常,到此本教程已结束。


以上就是“phpmywind程序实现自动生成sitemap.xml站点地图文件”的方法教程,可能我的方法存在不足,但只要能实现想要的效果就行,方法肯定是多样的。“不管是白猫还是黑猫,只要能抓到老鼠就是好猫”。

文章版权及转载声明

作者:Joson ,本文地址:https://www.sojoson.com/mbjc/22.html发布于 2020-12-11 10:48:38
文章转载或复制请以超链接形式并注明出自SoJoson博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (有1条评论,510人围观) 参与讨论
网友昵称:采购查询
采购查询 游客 2020-12-18 17:22:14 沙发 回复
博客很棒 欢迎回访我哦