考试报名信息,云课堂欢迎您!
当前位置:首页 > > 考试 > > 计算机类 > 内容页

PHP中BB生成sitemap地图文件的方法

2021-09-12 21:45:02计算机类访问手机版493

  PHP中BB生成sitemap地图文件的方法

  本文介绍下,在PHPBB论坛中生成sitemap地图文件的实现代码,感兴趣的朋友参考学习下。

  将以下PHP文件放到网站的根目录。

  加入此sitemap的前提:

  必须将PHPBB论坛的默认URL规格改成以下文件里生成的'格式。

  具体方法,请参考:

  http://www.jbxue.com/article/13591.html

  注意:

  红色部分的代码,修改成自己网站对应的内容:

  复制代码 代码示例:

  <?php

  // By: Arlinger On 2012-6-4

  //

  // CUSTOM INSTALLATION VARIABLES:

  $subdomain='www.';

  $domain=' '; //这里要改成你的网站名

  $folder='/forum/'; //这里要改成你把博客所在的文件夹的名字

  $urls=50000;

  // Change Nothing Below Here:

  $domainpath='http://'.$subdomain.$domain.$folder;

  // Connect

  define'IN_PHPBB', true;

  $phpbb_root_path = './';

  $phpEx = substrstrrchr__FILE__, '.', 1;

  include$phpbb_root_path . 'config.' . $phpEx;

  include$phpbb_root_path . 'includes/db/' . $dbms . '.' . $phpEx;

  $db = new $sql_db;

  $db->sql_connect$dbhost, $dbuser, $dbpasswd, $dbname, $dbport, false, false;

  // Gzip compression

  if @extension_loaded'zlib' && !headers_sent

  ob_start'ob_gzhandler';

  // Send Header

  header"Content-Type: text/xml;charset=iso-8859-1";

  // Send initial Data

  echo '<?xml version="1.0" encoding="UTF-8"?>'."n";

  echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."n";

  // Send Index

  $current_time=time;

  echo '<url>

  <loc>'.$domainpath.'</loc>

  <lastmod>'.date"Y-m-dTH:i:sP",$current_time.'</lastmod>

  </url>';

  $urls=$urls-1;

  // Send Forums

  $sql = 'SELECT forum_id, forum_last_post_time FROM '.$table_prefix.'forums WHERE enable_indexing=1 LIMIT '.$urls;

  $result = $db->sql_query$sql;

  while $data=$db->sql_fetchrow$result

  // Fix for parents forums showing 1969

  if $data['forum_last_post_time'] == 0

  $data['forum_last_post_time']=$current_time;

  echo '<url>

  <loc>'.$domainpath.'viewforum-'.$data['forum_id'].'.html'.'</loc>

  <lastmod>'.date"Y-m-dTH:i:sP",$data['forum_last_post_time'].'</lastmod>

  </url>';

  $urls=$urls-1;

  $db->sql_freeresult$result;

  // Send Topics

  $sql = 'SELECT * FROM '.$table_prefix.'topics as t, '.$table_prefix.'forums as f WHERE t.topic_approved=1 AND t.forum_id=f.forum_id AND f.enable_indexing=1 ORDER BY t.topic_id DESC LIMIT '.$urls;

  $result = $db->sql_query$sql;

  while $data=$db->sql_fetchrow$result

  echo '<url>

  <loc>'.$domainpath.'viewtopic-'.$data['topic_id'].'.html'.'</loc>

  <lastmod>'.date"Y-m-dTH:i:sP",$data['topic_last_post_time'].'</lastmod>

  </url>';

  $db->sql_freeresult$result;

  // Send Closing Tags

  echo ' </urlset>';

  ?>