dedecms织梦百度新闻动态生成

大家应该都知道,织梦里有一个百度新闻,可以生成静态的百度新闻xml文件,如查有人不知道百度新闻是做什么的,那可以去google这里不做多的解释,反正说一句,对seo有好外,这里不得不夸一下织梦做的很细。但是程序里的“百度新闻”是半自动的不能进行实时的更新,这样就很不方便了,现在网上有很多插件可以做到。我也不能说不好,我觉得用着不舒服。下面来看一下我是怎么做的,这里是代码。
复制代码

  1. <?php
  2. require_once (dirname(__FILE__) . "/include/common.inc.php");
  3. $dangqianurl=$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
  4. if(preg_match("/=|\?|and|select/",$dangqianurl))
  5. {
  6. showmsg("禁止输入非法字符",$cfg_basehost);
  7. }else
  8. {
  9.     header("Content-type:application/xml");
  10.     $baidunews = "<?xml version=\"1.0\" encoding=\"".$cfg_soft_lang."\" ?>\n";
  11.     $baidunews .= "<document>\n";
  12.     $baidunews .= "<webSite>$cfg_webname </webSite>\n";
  13.     $baidunews .= "<webMaster>$cfg_adminemail </webMaster>\n";
  14.     $baidunews .= "<updatePeri>$cfg_updateperi </updatePeri>\n";
  15.     $limit = $cfg_baidunews_limit;
  16.     if($limit > 100 || $limit < 1)
  17.     {
  18.         $limit = 100;
  19.     }
  20.     $query = "select maintable.*, addtable.body, arctype.typename
  21.     from #@__archives maintable
  22.     left join #@__addonarticle addtable on addtable.aid=maintable.id
  23.     left join #@__arctype arctype on arctype.ID=maintable.typeid
  24.     where maintable.channel=1 and maintable.arcrank!=-1 order by maintable.pubdate desc limit $limit
  25.     ";
  26.     $dsql->SetQuery($query);
  27.     $dsql->Execute();
  28.     while($row = $dsql->GetArray())
  29.     {
  30.         $title = htmlspecialchars($row[‘title’]);
  31.         $row1 = GetOneArchive($row[‘id’]);
  32.         if(strpos($row1[‘arcurl’],’http://’) === false)
  33.         {
  34.             $link = ($cfg_basehost==” ? ‘http://’.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$row1[‘arcurl’];
  35.         }else
  36.         {
  37.             $link = $row1[‘arcurl’];
  38.         }
  39.         $link = htmlspecialchars($link);
  40.         $description = htmlspecialchars(strip_tags($row[‘description’]));
  41.         $text = htmlspecialchars(strip_tags($row[‘body’]));
  42.         $image = $row[‘litpic’] ==” ? ” :$row[‘litpic’];
  43.         if($image != ” && strpos($image, ‘http://’) === false)
  44.         {
  45.             $image = ($cfg_basehost==” ? ‘http://’.$_SERVER["HTTP_HOST"].$cfg_cmspath : $cfg_basehost).$image;
  46.         }
  47.         //$headlineimg = ”;
  48.         $keywords = htmlspecialchars($row[‘keywords’]);
  49.         $category = htmlspecialchars($row[‘typename’]);
  50.         $author = htmlspecialchars($row[‘writer’]);
  51.         $source = htmlspecialchars($row[‘source’]);
  52.         $pubdate = htmlspecialchars(gmdate(‘Y-m-d H:i’,$row[‘pubdate’] + $cfg_cli_time * 3600));
  53.         $baidunews .= "<item>\n";
  54.         $baidunews .= "<title>$title </title>\n";
  55.         $baidunews .= "<link>$link </link>\n";
  56.         $baidunews .= "<description>$description </description>\n";
  57.         $baidunews .= "<text>$text </text>\n";
  58.         $baidunews .= "<image>$image </image>\n";
  59.         //$baidunews .= "<headlineImg />\n";
  60.         $baidunews .= "<keywords>$keywords </keywords>\n";
  61.         $baidunews .= "<category>$category </category>\n";
  62.         $baidunews .= "<author>$author </author>\n";
  63.         $baidunews .= "<source>$source </source>\n";
  64.         $baidunews .= "<pubDate>$pubdate </pubDate>\n";
  65.         $baidunews .= "</item>\n";
  66.     }
  67.     echo $baidunews .= "</document>\n";
  68. }
  69. ?>

这里可以是看到,

只要把这个代码放在你的网站上就可以了,打开域名/baidu.php就是可以出来了。如果心争的朋友可以直接拿去用,但是我还相啰嗦几句做一下简单的解释.


复制代码

  1. require_once (dirname(__FILE__) . "/include/common.inc.php");//这里是获取你的一些配置文件
  2. $dangqianurl=$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];//这个是获取当前的url地址,主要是用来判断有没有被注入的,这也是我为安全想的

我想信看到上面注释的朋友,应该知道我的用意了吧


复制代码

  1. if(preg_match("/=|\?|and|select/",$dangqianurl))
  2. {
  3. showmsg("禁止输入非法字符",$cfg_basehost);
  4. }else
  5. {
  6. ///如果没有非法字符就输出xml文件也就是百度新闻
  7. }

还要说一点大家可以通过url重写的技术来到这个动态的文件进行伪静态。

好了到这里已经结束了。

  如果你的网站符合标准,那么你可以去百度贴吧http://tieba.baidu.com/f?kw=新闻搜索申请收录,一般来说在5-7个工作日就能得到回复。要想查看自己的网站是否被百度新闻收录,可以通过执行site语法查看,直接在百度新闻搜索中输入site:你的域名,注意,是在百度新闻搜索,而不是在百度搜索,如果可以查询到结果,那你的网站就已经被百度新闻收录了。

发表评论