当前位置:  编程技术>php
本页文章导读:
    ▪PHPBB生成sitemap地图文件的方法      将以下PHP文件放到网站的根目录。 加入此sitemap的前提: 必须将PHPBB论坛的默认URL规格改成以下文件里生成的格式。 具体方法,请参考: http://www./article/13591.html   注意: 红色部分的代码.........
    ▪PHPBB论坛URL生成规则的修改方法      本节内容: PHPBB论坛URL生成规则 PHPBB论坛的默认URL地址格式,比如:   代码示例: http://www./forum/viewforum.php?f=2 http://www./forum/faq.php#f0r5 这样的URL格式不利于SEO的优化。 更改默认格式,最终显.........
    ▪php sitemap文件生成器代码      本节内容: php sitemap文件生成器 例子:   代码示例: <?php #--------------------------------------- # PHP版的Google Sitemap 生成器 ver 0.1 # 注意:必须对当前目录有写的权限 #-------------------------------.........

[1]PHPBB生成sitemap地图文件的方法
    来源: 互联网  发布时间: 2013-12-24

将以下PHP文件放到网站的根目录。
加入此sitemap的前提:
必须将PHPBB论坛的默认URL规格改成以下文件里生成的格式。

具体方法,请参考:
http://www./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 = substr(strrchr(__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-d\TH: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-d\TH: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-d\TH:i:sP",$data['topic_last_post_time']).'</lastmod>
         </url>';
}
$db->sql_freeresult($result);

// Send Closing Tags
echo '  </urlset>';
?>


    
[2]PHPBB论坛URL生成规则的修改方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
PHPBB论坛URL生成规则

PHPBB论坛的默认URL地址格式,比如:
 

代码示例:
http://www./forum/viewforum.php?f=2
http://www./forum/faq.php#f0r5

这样的URL格式不利于SEO的优化。

更改默认格式,最终显示结果:
 

把/forum/viewforum.php?f=2  改成   /forum/viewforum-2.html                                
把/forum/faq.php#f0r5   改成  /forum/faq-f0r5.html

步骤如下:
第一步:修改根目录下的.htaccess文件,定义URL的规则
在文件的结尾加上:
 

代码示例:
RewriteEngine on
#phpbb重写规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^viewtopic-(.+)-(.+).html$ viewtopic.php?f=$1&t=$2&start=$3 [L,NC]
RewriteRule ^viewtopic-(.+)-(.+).html$ viewtopic.php?f=$1&t=$2 [L,NC]
RewriteRule ^viewtopic-(.+).html$ viewtopic.php?t=$1 [L,NC]
RewriteRule ^viewforum-(.+)-(.+).html$ viewforum.php?f=$1&start=$2 [L,NC]
RewriteRule ^viewforum-(.+).html$ viewforum.php?f=$1 [L,NC]
 

第二步:修改viewtopic.php
 1、查找:

代码示例:
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id),
 

     改为:

代码示例:
'U_VIEW_FORUM' => "./viewforum". '-' . $forum_id.'.html',
 

 2、查找:

代码示例:
$pagination = generate_pagination(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : '') . (($highlight_match) ? "&amp;hilit=$highlight" : '')), $total_posts, $config['posts_per_page'], $start);
 

    改为:

代码示例:
$pagination = generate_pagination1(append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&amp;t=$topic_id" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : '') . (($highlight_match) ? "&amp;hilit=$highlight" : '')),"./viewtopic". '-' . $forum_id.'-'. $topic_id.'-', $total_posts, $config['posts_per_page'], $start);

第三步:修改includes/functions.php
在最后加上函数generate_pagination1,代码如下:
 

代码示例:
/*Arlinger info*/
function generate_pagination1($base_url1,$base_url, $num_items, $per_page, $start_item, $add_prevnext_text = false, $tpl_prefix = '')
{
global $template, $user;
// Make sure $per_page is a valid value
$per_page = ($per_page <= 0) ? 1 : $per_page;
$seperator = '<span >' . $user->lang['COMMA_SEPARATOR'] . '</span>';
$total_pages = ceil($num_items / $per_page);
if ($total_pages == 1 || !$num_items)
{
return false;
}
$on_page = floor($start_item / $per_page) + 1;
$url_delim = (strpos($base_url, '?') === false) ? '?' : ((strpos($base_url, '?') === strlen($base_url) - 1) ? '' : '&amp;');
$page_string = ($on_page == 1) ? '<strong>1</strong>' : '<a href="' . $base_url . '0.html">1</a>';
if ($total_pages > 5)
{
$start_cnt = min(max(1, $on_page - 4), $total_pages - 5);
$end_cnt = max(min($total_pages, $on_page + 4), 6);
$page_string .= ($start_cnt > 1) ? ' ... ' : $seperator;
for ($i = $start_cnt + 1; $i < $end_cnt; $i++)
{
$page_string .= ($i == $on_page) ? '<strong>' . $i . '</strong>' : '<a href="' . $base_url . "" . (($i - 1) * $per_page) . '.html">' . $i . '</a>';
if ($i < $end_cnt - 1)
{
$page_string .= $seperator;
}
}
$page_string .= ($end_cnt < $total_pages) ? ' ... ' : $seperator;
}
else
{
$page_string .= $seperator;
for ($i = 2; $i < $total_pages; $i++)
{
$page_string .= ($i == $on_page) ? '<strong>' . $i . '</strong>' : '<a href="' . $base_url . "" . (($i - 1) * $per_page) . '.html">' . $i . '</a>';
if ($i < $total_pages)
{
$page_string .= $seperator;
}
}
}
$page_string .= ($on_page == $total_pages) ? '<strong>' . $total_pages . '</strong>' : '<a href="' . $base_url . "" . (($total_pages - 1) * $per_page) . '.html">' . $total_pages . '</a>';
if ($add_prevnext_text)
{
if ($on_page != 1)
{
$page_string = '<a href="' . $base_url . "" . (($on_page - 2) * $per_page) . '.html">' . $user->lang['PREVIOUS'] . '</a>&nbsp;&nbsp;' . $page_string;
}
if ($on_page != $total_pages)
{
$page_string .= '&nbsp;&nbsp;<a href="' . $base_url . "" . ($on_page * $per_page) . '.html">' . $user->lang['NEXT'] . '</a>';
}
}
$template->assign_vars(array(
$tpl_prefix . 'BASE_URL'  => $base_url,
'A_' . $tpl_prefix . 'BASE_URL' => addslashes()($base_url1),
$tpl_prefix . 'PER_PAGE'  => $per_page,
$tpl_prefix . 'PREVIOUS_PAGE' => ($on_page == 1) ? '' : $base_url . "" . (($on_page - 2) * $per_page.".html"),
$tpl_prefix . 'NEXT_PAGE'  => ($on_page == $total_pages) ? '' : $base_url . "" . ($on_page * $per_page).".html",
$tpl_prefix . 'TOTAL_PAGES'  => $total_pages,
));
return $page_string;
}
 

第四步:修改includes/functions_display.php
1. 在最后加上函数topic_generate_pagination1
 

代码示例:
/*Arlinger info*/
function topic_generate_pagination1($replies, $url)
{
global $config, $user;
// Make sure $per_page is a valid value
$per_page = ($config['posts_per_page'] <= 0) ? 1 : $config['posts_per_page'];
if (($replies + 1) > $per_page)
{
$total_pages = ceil(($replies + 1) / $per_page);
$pagination = '';
$times = 1;
for ($j = 0; $j < $replies + 1; $j += $per_page)
{
$pagination .= '<a href="' . $url . '' . $j . '.html">' . $times . '</a>';
if ($times == 1 && $total_pages > 5)
{
$pagination .= ' ... ';
// Display the last three pages
$times = $total_pages - 3;
$j += ($total_pages - 4) * $per_page;
}
else if ($times < $total_pages)
{
$pagination .= '<span >' . $user->lang['COMMA_SEPARATOR'] . '</span>';
}
$times++;
}
}
else
{
$pagination = '';
}
return $pagination;
}

2. 查找:

代码示例:
'U_VIEWFORUM'  => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']))
 

   改为:

代码示例:
'U_VIEWFORUM'   => "./viewforum". '-' . $row['forum_id'].".html")
 

3. 查找:

代码示例:
'link'  => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $subforum_id),
 

   改为:

代码示例:
'link'  => "./viewforum". '-' . $subforum_id.'.html',
 

4. 查找:

代码示例:
$u_viewforum = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']);
 

   改为:

代码示例:
$u_viewforum = "./viewforum". '-' . $row['forum_id'].'.html';
 

5. 查找:

代码示例:
if (($row['forum_flags'] & FORUM_FLAG_LINK_TRACK) || $row['forum_password'] || !$auth->acl_get('f_read', $forum_id))
   {
    $u_viewforum = append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id']);
 

   改为:

代码示例:
if (($row['forum_flags'] & FORUM_FLAG_LINK_TRACK) || $row['forum_password'] || !$auth->acl_get('f_read', $forum_id))
   {
    $u_viewforum = "./viewforum". '-' . $row['forum_id'].'-'.$start.'.html';
 

6. 查找:

代码示例:
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $parent_forum_id))
 

   改为:

代码示例:
'U_VIEW_FORUM' => "./viewforum". '-' . $parent_forum_id.'.html')
 

7. 查找:

代码示例:
'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data['forum_id']))
 

   改为:

代码示例:
'U_VIEW_FORUM' => "./viewforum". '-' . $forum_data['forum_id'].'.html')
 

8. 查找:

代码示例:
'U_ACTIVE_FORUM'  => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $active_f_id),
 

   改为:

代码示例:
'U_ACTIVE_TOPIC'  => append_sid("{$phpbb_root_path}viewtopic.$phpEx", 't=' . $active_t_id),

第五步:修改viewforum.php
1. 查找:

代码示例:
$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", $view_topic_url_params);
 

   改为:

代码示例:
$view_topic_url = "./viewtopic" . '-' . $topic_id.'.html';
 

2. 查找:

代码示例:
'U_VIEW_FORUM'  => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id&amp;start=$start"),
 

   改为:

代码示例:
'U_VIEW_FORUM' => "./viewforum". '-' . $forum_id.'-'.$start.'.html',

3. 查找:

代码示例:
'S_FORUM_ACTION'  => append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id&amp;start=$start"),
 

   改为:

代码示例:
'S_FORUM_ACTION'        => "./viewforum". '-' . $forum_id.'-'.$start.'.html',
 

4. 查找:

代码示例:
'PAGINATION' => generate_pagination(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : '')), $topics_count, $config['topics_per_page'], $start),
 

   改为:

代码示例:
'PAGINATION' => generate_pagination1(append_sid("{$phpbb_root_path}viewforum.$phpEx", "f=$forum_id" . ((strlen($u_sort_param)) ? "&amp;$u_sort_param" : '')),"./viewforum". '-' . $forum_id.'-', $topics_count, $config['topics_per_page'], $start),
 

5. 查找:

代码示例:
'PAGINATION'  => topic_generate_pagination($replies, $view_topic_url),

   改为:

代码示例:
'PAGINATION'     => topic_generate_pagination1($replies, $view_topic_url1),

    
[3]php sitemap文件生成器代码
    来源: 互联网  发布时间: 2013-12-24

本节内容:
php sitemap文件生成器

例子:
 

代码示例:

<?php
#---------------------------------------
# PHP版的Google Sitemap 生成器 ver 0.1
# 注意:必须对当前目录有写的权限
#---------------------------------------
#网站根域名
$WebRoot = " 改成自己的网址
#XML文件名称
$XMLFile = "sitemaps.xml";
#要建虑的目录[区分大小写],注意:前面加号是因为0在PHP中表示假,这样取子串位置时就不会返回假
#以本程序所在的目录为当前目录,即扫描的根目录,所以目录前面不用加上"/"
$FilterDir = "+|sysAdmin|down|";
#要索引的文件扩展名[小写]
$IndexFileExt = "+|htm|html|";
#XML头部
$XMLText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"";
#XML尾部
$XMLEndText = "</urlset>";
echo "开始构建文件XML索引...";
DealFP(".");
$XMLText .= $XMLEndText;
makeFile($XMLFile,$XMLText);
echo "ok!<br><br>";
$url = $WebRoot.$XMLFile;
echo "<a href="/blog_article/.$url">打开</a>:".$url;
#公用函数库:
#新建文件
function makeFile($fileName, $text){
$fp = fopen($fileName, "w+");
fwrite($fp, $text);
fclose($fp);
}
/**
* 将指定内容添加到XML中
* $f 含相对路径的文件名称
* $dt 日期时间型
*/
function addToXML($f, $dt){
$s = "<url><loc>".$GLOBALS["WebRoot"].$f."</loc><lastmod>".$dt."</lastmod></url>\n";

$GLOBALS["XMLText"] .= $s;
}
/**
* 遍历指定的目录以及子目录,将符合条件的文件加入XML
* $p 指定的目录
*/
function DealFP($p){
$FilterDir = $GLOBALS["FilterDir"];
$IndexFileExt = $GLOBALS["IndexFileExt"];

$handle=opendir($p);
if ($p==".") $path = "";
else $path = $p."/";
while ($file = readdir($handle))
{ // www.
    $d = filetype($path.$file);
    if ((($d=='file')||($d=='dir'))&&($file!='.')&&($file!='..'))
    {
        $pf = $path.$file;
        //echo "[".$d."]".$pf."<br>";
        if ($d=='dir')
        {
          if (!(strpos($FilterDir, "|".$pf."|")))
          {
            DealFP($pf);
          }
        }else{
          $ext = "|".strtolower()(substr($file, strrpos($file, ".")+1))."|";
         
          if (strpos($IndexFileExt, $ext))
          {
            $d = filemtime($pf);
            $dt = date("Y-m-d",$d)."T".date("H:i:s",$d)."+00:00";
            addToXML($pf, $dt);
          }
        }
    }
}
closedir($handle);
}
?>


    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3