本帖最后由 221400q 于 2012-9-28 09:02 编辑
求助,外部调用帖子html格式,我按照这个方法http://www.seowhy.com/bbs/thread-38439-1-1.html设置,但是在DZ2.5上面不成功,求高人指点下,我怎么弄都不能把帖子调用出来的,我的程序DZ2.5的,论坛安装在根目录,求高人帮忙看下如何做。
问题已经解决,我的主站是http://www.cnxilo.com,右下角的技术论坛。调用的是另外一个空间http://cnxilo.net上面的数据,这样做比JS要好,JS调用的内容蜘蛛抓取不到,而用这个方法调用的内容蜘蛛是可以抓取到的。
他的方法是:
在论坛的后台,其他->计划任务—>增添一个任务,然后点击这个任务的“编辑”,在“任务脚本:”的输入框里输入:makehtml_daily.inc.php
其他更新时间设置,可以自己选择。
然后,通过这个地址:http://www.seowhy.com/bbs/forumdata/cache/newhtml.htm 可以获得HTML格式的论坛帖子。注意,请在UTF8编码下查看。- <?php
- /*
- 调用论坛的10个最新帖子,输出为html格式,通过计划任务更新,更新时间可以在计划任务中设置
- */
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- $newhtml = '';
- $query = $db->query("SELECT t.*, f.name FROM {$tablepre}threads t, {$tablepre}forums f WHERE t.fid=f.fid and f.fid IN('8','2','38','50') ORDER BY t.dateline DESC LIMIT 0, 10");
- //这里的f.fid in ('8','2','38','50') 要改成自己想要调用的版块号
- while($new = $db->fetch_array($query)) {
- $newsubject = cutstr($new['subject'],42);
- $newurl = 'http://www.ecoscyw.cn/edu/thread-'.$new['tid'].'-1-1.html';
- $newhtml .= '<li><a target="_blank" href="'.$newurl.'">'.$newsubject.'</a></li>';
- }
- //$newhtml = convert_data($newhtml);
- //如果您的服务器本来就是uft8的,这行应该注释掉。
- writehtml('newhtml.htm', $newhtml);
- //写入html文件
- function writehtml($file, $html) {
- global $timestamp, $_DCACHE;
- $yearmonth = gmdate('Ym', $timestamp + $_DCACHE['settings']['timeoffset'] * 3600);
- $logdir = DISCUZ_ROOT.'./forumdata/cache/';
- $logfile = $logdir.$file;
- if($fp = @fopen($logfile, 'w')) {
- @flock($fp, 2);
- fwrite($fp, "$html");
- fclose($fp);
- }
- }
- //如果您的服务器本来就是uft8的,下面的函数也注释掉
- /* function convert_data($data) {
- include DISCUZ_ROOT.'include/chinese.class.php';
- $c = new Chinese('gbk', 'utf8');
- $data = $c->Convert($data);
- return $data;
- }
- ?> */
复制代码 外部调用的时候需要的代码是:
- function readBbsHtml()
- {
- $content = file("http://www.ecoscyw.cn/edu/forumdata/cache/newhtml.htm");
- $content = implode("\n",$content);
- return $content;
- }
复制代码 |