phpmps调用discuz x方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-04-01 22:14:34 浏览: 评论:0
本贴介绍phpmps调用discuz x方法(非JS),也就是调用静态的帖子到,phpmps首页,这对seo非常必要。
phpmps是一款非常实用的php分类信息开源系统,前些天我给一个网站采用了该系统,在首页调用discuz x2.5论坛内容,但是一直没有找到方法,phpmps官方的论坛人少之又少,在此写个phpmps调用discuz x方法,该方法同样适用于ecshop等其他开源程序的调用,下面不多说废话了,入正题:
具体方法:
新建一个文本文件,把以下代码保存在文本文件中,然后把它重命名为cron_makehtml_daily.php,即php文件,然后通过ftp工具把cron_makehtml_daily.php上传到论坛目录下的/source/include/cron/目录中.
- <?php
- if(!defined('IN_DISCUZ')) {
- exit('Access Denied');
- }
- $newhtml = '';
- $query = DB::query("SELECT t.*, f.name FROM bbs_forum_thread t, bbs_forum_forum f WHERE t.fid=f.fid and f.fid IN('2','36','37','39','40','42') ORDER BY t.dateline DESC LIMIT 0, 10"); //这里要修改你自己想要调用的版块ID
- while($new = DB::fetch($query)) {
- $newsubject = cutstr($new['subject'],48);
- $newurl = 'http://www.100de.com.cn/bbs/thread-'.$new['tid'].'-1-1.html';
- $newhtml .= '<li><a target="_blank" href="'.$newurl.'">'.$newsubject.'</a></li>';
- }</p><p>$newhtml = convert_data($newhtml);
- writehtml('newhtml.htm', $newhtml);
- //写入html文件
- function writehtml($file, $html) {
- global $timestamp;
- $yearmonth = gmdate('Ym', $timestamp + 8 * 3600);
- $logdir = DISCUZ_ROOT.'./data/cache/';
- $logfile = $logdir.$file;
- if($fp = @fopen($logfile, 'w')) {
- @flock($fp, 2);
- fwrite($fp, "$html");
- fclose($fp);
- }
- }
- function convert_data($data) {
- include_once DISCUZ_ROOT.'./source/class/class_chinese.php';
- $c = new Chinese('utf8','gbk');
- $data = $c->Convert($data);
- return $data;
- }
- ?>
上面是夫唯老师提供给我的代码,因为我本身的服务器环境是utf-8的,所以我注释了2段代码,才显示正常.
第一段代码,是编码转换:
//$newhtml = convert_data($newhtml);
第二段代码,编码转换的方法
然后登陆论坛后台管理中心,工具->计划任务,增加一个新的计划任务名“输出html”,名字可以自己取,然后点击这个任务的“编辑”,在“任务脚本”里面输入:cron_makehtml_daily.php,其他更新时间设置,自己选择,也可以保持默认,点击“提交”.
然后,通过这个地址http://www.phpfensi.com.cn/bbs/data/cache/newhtml.htm,可以获得html格式的论坛最新10个帖子,如果显示乱码,切换到UTF-8编码下查看.
在phpmps的模板文件需要调用的地方加入如下代码:
- <?php
- $data=array('foo'=>'bar');
- $data=http_build_query($data);
- $opts=array(
- 'http'=>array(
- 'method'=>'POST',
- 'header'=>"Content-type: application/x-www-form-urlencoded\r\n".
- "Content-Length: ".strlen($data)."\r\n",
- 'content'=>$data
- ),
- );
- $context=stream_context_create($opts);
- $html=file_get_contents('http://www.phpfensi.com.cn/bbs/data/cache/newhtml.htm',false,$context);
- echo$html;
- ?>
OK,可以了,没调用出来的同学,清理下phpmps和discuz的缓存。
Tags: phpmps 调用discuz x
相关文章
- ·discuz X3全局变量$_G(2014-01-10)
- ·Discuz X3 mysql数据库主从同步 读写分离(2014-03-31)
- ·discuz X3全局变量$_G(2014-03-31)
- ·设置Apache2.4.4支持DiscuzX3.1伪静态(2014-04-01)
- ·Discuz!X2.5和UCenter_1.6.0(2014-04-01)
- ·Discuz X3论坛如何清除“无效楼层,该帖已经被删除”(2014-04-01)
- ·discuz x论坛XShow首页N格最新回复实现静态化的方法(2014-04-01)
- ·Discuz-X模板教程 G变量注解之 $_G['xxx'] 全局基本变量(2014-04-02)
- ·Discuz-X模板教程 G变量注解之$_G['setting'] 全局后台各项设置(2014-04-02)
- ·Discuz-X模板教程 G变量注解之 $_G['style'] 全局可用的风格变量(2014-04-02)
- ·discuz!x3管理员后台登录不了或登录后自动退出的解决方法(2014-04-02)
- ·fsockopen被禁用,搞定discuz X2.5通信,实现单点登录登出(2014-04-02)
- ·Discuz x3 版块横排下显示版块介绍的修改方法(2014-04-02)
- ·discuz X2.5 iis版 windows下 如何实现伪静态经验分享(2014-04-03)
- ·DZX2R20120628升級到Discuz! X2 R20130201~diy数据出错(2014-04-03)
- ·DISCUZ X3实现LINUX 虚拟主机环境下的301+伪静态教程(2014-07-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)