前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP学习---如何把富文本编辑器里面的内容生成html 传回给android客户端

PHP学习---如何把富文本编辑器里面的内容生成html 传回给android客户端

作者头像
wust小吴
发布2019-07-05 11:38:38
2.2K0
发布2019-07-05 11:38:38
举报
文章被收录于专栏:风吹杨柳风吹杨柳

通过对 ThinkCMF的框架的学习,这次的内容是在框架自带的门口那个模块下面,Portal下面

我们知道后台编辑文章对应的是AdminPost  下面的add.html

首先我们去改add.html界面

首先我们需要的是去看懂它的表单提交和跳转是怎么设置的

他的方式是  action="{:u('AdminPost/add_post')}"

或者是:href="{:U('AdminPost/index')}"

或者是:href="{:U('AdminPost/add',array('term'=>empty($term['term_id'])?'':$term['term_id']))}"

前面对ThinkCMF框架结构的学习我们知道,对应的add_post  这个方法一定是在application的控制器Controller下面的AdminPostController.class.php里面定义的

当然模块应该是Portal下面的,这是表单提交的,也就是把表单里面的各个输入框,富文本编辑器里面的东西都提交给这个方法处理了

我现在新建了一张表,里面就是专门来放文章的各个来源

对应的数据库是这样的,当然数据库外键什么的就先忽略,因为目前只是学习 不需要记录是谁发的这个文章等userid什么的

CREATE TABLE `zhuanti`( id int unsigned not null primary key auto_increment COMMENT '编号', type enum('travel','hotel','food') not null default 'travel' COMMENT '类型', title varchar(35) not null default '' COMMENT '标题', recommended tinyint not null default '0' COMMENT '推荐', istop tinyint not null default '0' COMMENT '置顶', pubdate varchar(50) not null default '0' COMMENT '发布时间', keywords varchar(50) not null default '' COMMENT '关键词', com_source varchar(50) not null default '' COMMENT '机构来源', zhuanti_content varchar(250) not null  default '' COMMENT '专题内容', imgsrc varchar(500) not null default '' COMMENT '图片地址', picdomain varchar(500) not null default '' COMMENT '前图片缀地址' )engine=MyISAM DEFAULT CHARSET=UTF8;

后台发布文章对应的界面如下所示:

因为我的目的很明确,就是只要富文本的编辑器里面的东西,编程纯html页面,而且传给android段的是一个html地址,用webview打开的,

所以这里面其他的东西都可以忽略掉,

然后把  ThinkCMF的验证都去掉,那个东西目前还么有研究,只要这个表单就行

接下来就是需要去重写  add_post方法了

代码语言:javascript
复制
<span style="font-size:18px;"><strong>	public function add_post(){  
		if (IS_POST) {
		    $data['pubdate'] = $_POST['post']['pubdate'];
		    $data['istop'] = $_POST['post']['istop'];
		    $data['recommended'] = $_POST['post']['recommended'];
		    $data['title'] = $_POST['post']['title'];
		    $data['keywords'] = $_POST['post']['keywords'];
		    $data['com_source'] = $_POST['post']['com_source'];
		    $data['zhuanti_content'] = $this->getHTMLurl();
		    $data['type'] = $_POST['type'][0];
		    $data['imgsrc'] = implode('|',$_POST['photos_url']);
		    $m = M('Zhuanti');
		    if($id = $m->data($data)->add()){
		        // insert into zhuanti (bupdate,istop...)values(值);
		        $this->success('添加成功');
		        exit();
		    }
		    $this->error('添加失败 : '.$m->getError());
		}
	}</strong></span>

这里面只关心两个东西,

 $data['zhuanti_content'] = $this->getHTMLurl();这个里面返回来的就是content对应的html地址

$data['imgsrc'] = implode('|',$_POST['photos_url']);这个是把多张图放在一个字符串里面

自定义的方法是下面这样的

代码语言:javascript
复制
<span style="font-size:18px;"><strong>	private function getHTMLurl(){
	    $content = $_POST['post']['content'];
	    $src = './tpl/html/'.time().'.html';
	    file_put_contents($src, $content);
	    return $src;
	}</strong></span>

这里面是什么意思呢,首先获取内容,然后生成相应的html地址,加上时间蹉  保证唯一  其实这里简单了,还需要优化的

然后生成html  

代码语言:javascript
复制
<span style="font-size:18px;"><strong> file_put_contents($src, $content);</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>
</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>到这里还没有结束,是会报错的,因为html是需要前台显示的,也就是那个html是见在tpl下面的,那么在application的控制器里面必须要建立一个控制器了</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>
</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong><?php
namespace Portal\Controller;
use Common\Controller\HomeBaseController;
class PostController extends HomeBaseController{
    public function getHTML(){//这里随便取个什么名字的,无所谓,
</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>}</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>}</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>
</strong></span>
代码语言:javascript
复制
<span style="font-size:18px;"><strong>就这样结束了,然后是后台接口的编写了,这里先不介绍了</strong></span>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年09月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档