ThinkPHP使用Ueditor的方法詳解
本文實(shí)例講述了ThinkPHP使用Ueditor的方法。分享給大家供大家參考,具體如下:
相信很多人現(xiàn)在還在用著FCkeditor,以前我也在用,可是后來(lái)發(fā)現(xiàn)百度的Ueditor之后,發(fā)現(xiàn),Ueditor比Fckeditor更好看,操作性上也比Fckeditor好多了,所以還是嘗試著使用ueditor,但是在ThinkPHP框架下使用ueditor還是遇到了一些問(wèn)題,也花費(fèi)了一些時(shí)間去解決這些問(wèn)題,這樣,在這里寫(xiě)一個(gè)關(guān)于ThinkPHP下使用ueditor的教程,給需要使用的人。
1、在網(wǎng)站的根目錄下建一個(gè)“Public”的文件夾,這個(gè)文件夾在ThinkPHP中可以用__PUBLIC__來(lái)替換,所以這樣方便我們程序的編寫(xiě),然后將ueditor文件放到這個(gè)文件夾中。
2、在我們需要使用ueditor的模板文件中導(dǎo)入ueditor所要使用的js和css,例如,我在App/Tpl/default/Venter/createvent.html中添加以下代碼:
<script type="text/javascript" src="__PUBLIC__/ueditor/editor_config.js"></script> <script type="text/javascript" src="__PUBLIC__/ueditor/editor_all.js"></script> <link rel="stylesheet" href="__PUBLIC__/ueditor/themes/default/ueditor.css"/>
3、配置Ueditor相對(duì)于網(wǎng)站根目錄的位置,這里我建議使用絕對(duì)路徑,即類似于http://localhost:1080這樣的路徑,因?yàn)樵诰W(wǎng)站項(xiàng)目的開(kāi)發(fā)中,很多地方會(huì)用到ueditor,但是由于所用到的位置不同便導(dǎo)致當(dāng)前目錄和服務(wù)器根目錄的相對(duì)路徑變化,也就使得ueditor無(wú)法使用,例如,我配置的路徑(配置文件:ueditor目錄下的editor_config.js),將一下代碼進(jìn)行替換:
URL= tmp.substr(0,tmp.lastIndexOf("\/")+1).replace("_examples/",""); //這里你可以配置成ueditor目錄在您網(wǎng)站的相對(duì)路徑或者絕對(duì)路徑(指以http開(kāi)頭的絕對(duì)路徑)
替換成:
URL = "http://localhost:1080/Public/ueditor/";
4、下面便是一個(gè)對(duì)表單的使用的應(yīng)用:
<form action="__ROOT__/index.php/Venter/ventChk" method="post"> <script type="text/plain" id="Vent" style="width:500px;"></script> <input type="checkbox" name="opened" value="1"/>公開(kāi)發(fā)表 <input type="submit" value="發(fā)泄" /> </form> <!--注冊(cè)百度ueditor--> <script type="text/javascript"> var editor = new baidu.editor.ui.Editor({ toolbars:[['Spechars','Emotion','InsertImage','Bold','Italic','ForeColor','FontFamily','FontSize', ]],//自定義ueditor工具欄 initialContent: '<span style="color:#ccc">點(diǎn)擊這里發(fā)泄吧</span>', minFrameHeight: 100,//初始化框架大小 autoFloatEnabled: false,//工具欄自動(dòng)浮動(dòng)-》關(guān)閉 textarea:'myVent'//form表單將通過(guò)該參數(shù)獲得表單提交的數(shù)據(jù) }); editor.render("Vent"); </script> <!--百度Ueditor注冊(cè)完畢-->
如上面代碼所示,可以通過(guò)$_POST['myVent']來(lái)獲取Ueditor編輯區(qū)的內(nèi)容。
5、在Thinkphp中如何去使用呢?首先要先將得到的內(nèi)容提交進(jìn)行轉(zhuǎn)義,這里我們使用以下代碼:
$content = htmlspecialchars(stripslashes(POST['myVent']));
這之后的操作便是將$content插入到數(shù)據(jù)庫(kù)中(這里不再多說(shuō))。
6、從數(shù)據(jù)中提取數(shù)據(jù)并進(jìn)行轉(zhuǎn)義使得內(nèi)容可以正常顯示:
$vent = new VenterModel; $list = $vent->select(); $this->assign("list",$list)
這樣在相應(yīng)的html模板中可以這樣來(lái)顯示內(nèi)容:
<volist name="list" id="vo"> {$vo.content|htmlspecialchars_decode} </volist>
這里用到了thinkphp模板的一個(gè)用法,即可以在模板中使用函數(shù),這里便使用了函數(shù)htmlspecialchars_decode來(lái)對(duì)$vo,content進(jìn)行轉(zhuǎn)義,上面的代碼可以看成是這樣:
htmlspecialchars_decode($vo.content),在這里的這個(gè)方法的選擇上我用了很長(zhǎng)時(shí)間,當(dāng)時(shí)沒(méi)有考慮到這個(gè)方法,當(dāng)時(shí)只是想著,由于htmlspecialchars_decode函數(shù)接受的傳值不能是數(shù)組,所以從數(shù)據(jù)庫(kù)中提取的數(shù)據(jù)便不能直接傳給他,后來(lái)想可以通過(guò)遍歷數(shù)組的方法來(lái)讓數(shù)組內(nèi)每個(gè)元素都htmlspecialchars_decode一下,雖然可以將內(nèi)容轉(zhuǎn)義,但是卻不能在模板中顯示了,直到最后看了一些官方的手冊(cè),才想到了這里,所以做程序,一定要多看看官方的文檔,很多問(wèn)題便能解決。
PS:這里推薦幾款本站的格式化/美化/轉(zhuǎn)換工具可以幫助你整理雜亂無(wú)章的代碼,相信大家在以后的開(kāi)發(fā)中能夠用得上:
php代碼在線格式化美化工具:
http://tools.jb51.net/code/phpformat
JavaScript代碼美化/壓縮/格式化/加密工具:
http://tools.jb51.net/code/jscompress
在線XML格式化/壓縮工具:
http://tools.jb51.net/code/xmlformat
JSON代碼格式化美化工具:
http://tools.jb51.net/code/json
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
sql代碼在線格式化美化工具:
http://tools.jb51.net/code/sqlcodeformat
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門(mén)教程》、《ThinkPHP常用方法總結(jié)》、《PHP中cookie用法總結(jié)》、《smarty模板入門(mén)基礎(chǔ)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
thinkphp5?操作redis?實(shí)現(xiàn)文章的熱度排行和點(diǎn)贊排行的示例
本文主要介紹了thinkphp5?操作redis?實(shí)現(xiàn)文章的熱度排行和點(diǎn)贊排行的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04Yii模型操作之criteria查找數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Yii模型操作之criteria查找數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例形式分析了Yii模型中criteria的實(shí)例化與查詢操作相關(guān)技巧,需要的朋友可以參考下2016-07-07如何使用php實(shí)現(xiàn)評(píng)委評(píng)分器
本文主要介紹了如何使用php實(shí)現(xiàn)評(píng)委評(píng)分器,從輸入的數(shù)組中去掉最高分和最低分,算出平均分,需要的朋友可以參考下2015-07-07PHP實(shí)現(xiàn)無(wú)限分類的實(shí)現(xiàn)方法
無(wú)限級(jí)分類是一種設(shè)計(jì)技巧,在開(kāi)發(fā)中經(jīng)常使用,本篇文章主要介紹PHP實(shí)現(xiàn)無(wú)限分類的實(shí)現(xiàn)方法,有需要的可以了解一下。2016-11-11PHP中關(guān)于PDO數(shù)據(jù)訪問(wèn)抽象層的功能操作實(shí)例
下面小編就為大家?guī)?lái)一篇PHP中關(guān)于PDO數(shù)據(jù)訪問(wèn)抽象層的功能操作實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09