php自动生成sitemap地图的代码
如何生成sitemap地图呢?本文分享一例php代码,用于自动动态生成最新的sitemap地图文件,并通知google网站地图的更新,感兴趣的`朋友参考下吧。
php自动生成sitemap地图
例子,:主要生成sitemap的类。
代码:
复制代码 代码示例:
<?php
// sitemap generator class
class Sitemap
{
// constructor receives the list of URLs to include in the sitemap
function Sitemap($items = array())
{
$this->_items = $items;
}
// add a new sitemap item
function addItem($url,
$lastmod = ”,
$changefreq = ”,
$priority = ”,
$additional_fields = array())
{
$this->_items[] = array_merge(array(‘loc’ => $url,
‘lastmod’ => $lastmod,
‘changefreq’ => $changefreq,
‘priority’ => $priority),
$additional_fields);
}
// get Google sitemap
function getGoogle()
{
ob_start();
header(‘Content-type: text/xml’);
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<urlset xmlns=”″
xmlns:xsi=””
xsi:schemaLocation=”
”>’;
foreach ($this->_items as $i)
{
echo ‘<url>’;
foreach ($i as $index => $_i)
{
if (!$_i) continue;
echo “<$index>” . $this->_escapeXML($_i) . “</$index>”;
}
echo ‘</url>’;
}
echo ‘</urlset>’;
return ob_get_clean();
}
// escape string characters for inclusion in XML structure
function _escapeXML($str)
{
$translation = get_html_translation_table(HTML_ENTITIES, ENT_QUOTES);
foreach ($translation as $key => $value)
{
$translation[$key] = ‘&#’ . ord($key) . ‘;’;
}
$translation[chr(38)] = ‘&’;
return preg_replace(“/&(?![A-Za-z]{0,4}w{2,3};|#[0-9]{2,3};)/”,”&” ,
strtr($str, $translation));
}
}
?>
:调用,具体实现sitemap。
复制代码 代码示例:
<?php
// redirect requests to dynamic to their keyword rich versions
require_once ‘/’;
define(‘SITE_DOMAIN’, ‘’);
// create the Sitemap object
$s = new Sitemap();
// add sitemap items
$s->addItem(SITE_DOMAIN);
$s->addItem(SITE_DOMAIN.”/”);
$s->addItem(SITE_DOMAIN.”/”);
…
//连接数据库,生成URL并通过条用$s->addItem()加入到sitemap中。
// output sitemap
if (isset($_GET['target']))
{
// generate Google sitemap
if (($target = $_GET['target']) == ‘google’)
{
echo $s->getGoogle();
}
}
?>
说明:
cess文件,重定向文件到。
RewriteEngine on
RewriteRule ^$ [L]
ping_google()函数,在网站内容更新的地方调用此函数,用于自动通知Google网站地图更新。
代码:
复制代码 代码示例:
<?php
function ping_google(){
$sitemapUrl = ‘’;
$pingUrl = “($sitemapUrl);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $pingUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch) or die (curl_error()); //执行curl请求
//echo $result;
curl_close($ch);
}
注意:此函数需要开启php的curl模块。
将以上代码加入到网站中,即可实现动态自动生成sitemap文件了,而且能够实时通知Google服务器网站内容更新。
-
php新手易犯的几个小错误
本文为大家列举了php新手易犯的几个小错误,供大家参考。1、headeralreadysent这个错误通常会在你使用HEADER的时候出现,他可能是几种原因。跟随小编去看看吧!1、headeralreadysent这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:1,你在使用HEADER前PRING...
-
Yii2创建表单(ActiveForm)方法
Yii2创建表单(ActiveForm)的方法,结合实例形式详细分析了Yii创建表单的详细步骤及相关函数与属性的使用技巧,需要的朋友可以参考下.由于表单涉及到一些验证方面的信息,属性设置又比较多、比较复杂,所以哪里有什么不正确的地方请留言指点目录表单的生成表单中的方...
-
PHP工程师应该掌握的知识结构
作为一名合格的PHP工程师的知识结构是怎样的?下面是本站小编精心为大家整理的PHP工程师应该掌握的知识结构,希望对大家有帮助,更多内容请关注应届毕业生网!一x方面Linux常用命令1.文件处理命令2.权限管理命令3.帮助命令4.文件搜索命令5.压缩解压命令6.命令使用技...
-
学习php分页代码实例
学习PHP,一定会遇到操作MYSQL数据库,而且会对数据库里的数据做分页显示出来的问题,下面写一个小例子学习一下PHP分页的方法。PHP分页有很多方法,今天我们就用一个小例子演示一下这个功能。复制代码代码如下:$result="<Pclass=\"page-num\"><ulclass=\"fn-clear...