公司网站采用的是phpmywind程序进行的二次开发,程序本身并没有实现网站站点地图的功能,在网上找了很久,基本都是一些用户发布的需求,以及并非为.xml格式的站点地图教程,像html的文件这个还是比较好弄的,建个sitemap.php文件编写程序代码和SQL数据库语言,再加上伪静态一下就能搞定了,但是相对生成sitemap.xml格式的文件还是相对困难些(仅针对不会代码的小白或SEO人员)。
起初,我也是不会的,当时用的是伪静态的html格式,主要是自己没有重心去优化处理这个,所以就搁置了好久,今天在优化网站时又想起了这件事,所以还是必须得处理好,以下是实现的效果图(图中域名已隐藏):
<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站点地图文件”的方法教程,可能我的方法存在不足,但只要能实现想要的效果就行,方法肯定是多样的。“不管是白猫还是黑猫,只要能抓到老鼠就是好猫”。
发表评论