最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Thinkphp模板沒有解析直接原樣輸出的解決方法

 更新時(shí)間:2014年10月31日 11:25:14   投稿:shichen2014  
這篇文章主要介紹了Thinkphp模板沒有解析直接原樣輸出的解決方法,是很多開發(fā)者都遇到的問題,非常實(shí)用,需要的朋友可以參考下

本文實(shí)例講述了Thinkphp模板沒有解析直接原樣輸出的解決方法。分享給大家供大家參考。具體如下:

一、問題:

最近在學(xué)習(xí)thinkphp模板了,但是發(fā)現(xiàn)模板頁原樣出來了,經(jīng)過一番艱苦搜索終于找到解決方案。

二、解決方法:

很多人都碰到相同問題,在變量中賦值的字符串中包含的__ROOT__、__PUBLIC__、__APP__,這種字符的, 在模板中display出來的時(shí)候都被替換成了真實(shí)路徑。話說是在寫Timi文件管理系統(tǒng)的時(shí)候發(fā)現(xiàn)的這個(gè)問題。

從文件中把源碼讀出來輸出到頁面后發(fā)現(xiàn),只要是TP的路徑字符,都被替換成了真實(shí)路徑。
比如:

復(fù)制代碼 代碼如下:
$this->assign('fileContent',$fileContent);//$fileContent中包含__PUBLIC__“路徑常量”字符。

 
頁面輸出后顯示為真實(shí)路徑/public/。
期間經(jīng)過了多種嘗試,比如assign的時(shí)候base64加密,模板輸出的時(shí)候decode一下,發(fā)現(xiàn)沒起作用。最后終于忍不住的看了下Tp這塊的源碼,發(fā)現(xiàn)在display方法的最后一步的時(shí)候通過調(diào)用tag方法把“Tp的路徑常量”替換成真實(shí)路徑的。在render方法之前都是正常的。

本來準(zhǔn)備改下源碼實(shí)現(xiàn)下面這位童鞋的需求方案的:
老大、這是臨時(shí)解決方案還是最終方案?
不過我感覺在assign()方法里面加個(gè)判斷還不錯(cuò),
如果是$this->assign('','',false),則對內(nèi)容不替換,原樣輸出。

結(jié)果,看完這塊源碼后才發(fā)現(xiàn),不是那么容易,改動太大了。

最后另一位童鞋的回復(fù),點(diǎn)出了最終解決方案:

“可以參考這里的內(nèi)容:http://m.fzitv.net/article/54217.htm(模板替換)
 
有了模板替換規(guī)則后,頁面上所有的__PUBLIC__ 字符串都會被替換,那如果確實(shí)需要輸出__PUBLIC__ 字符串到模板呢,我們可以通過增加替換規(guī)則的方式,例如:

復(fù)制代碼 代碼如下:
'TMPL_PARSE_STRING'  =>array(
         '--PUBLIC--' => '__PUBLIC__', // 采用新規(guī)則輸出/Public字符串
)

這樣增加替換規(guī)則后,如果我們要輸出__PUBLIC__ 字符串,只需要在模板中添加--PUBLIC--,其他替換字符串的輸出方式類似。

這樣增加替換規(guī)則后,如果我們要輸出__PUBLIC__ 字符串,只需要在模板中添加--PUBLIC--,其他替換字符串的輸出方式類似。

于是乎,方案出爐:

在Tp的配置文件config.php中配置

復(fù)制代碼 代碼如下:
'TMPL_PARSE_STRING' => array (//路徑配置
      
        //Timi文件路徑還原
        '--PUBLIC--' => '__PUBLIC__',
        '--APP--' => '__APP__',
        '--URL--' => '__URL__',
        '--ACTION--' => '__ACTION__',
        '--SELF--' => '__SELF__',
        '--INFO--' => '__INFO__',
        '--EXT--' => '__EXT__'
),

讀出源碼的時(shí)候正則替換一下“路徑常量字符”__ROOT__為--ROOT--:

復(fù)制代碼 代碼如下:
$fileContent=file_get_contents($filePath);
$fileContent=htmlspecialchars(preg_replace('/__(.*?)__/is','--$1--',$fileContent));

然后TMPL_PARSE_STRING的配置在模板被解析的時(shí)候剛好替換回去,如下圖所示:

于是乎,這個(gè)問題就“暫時(shí)”“完美”解決了。

希望本文所述對大家的ThinkPHP框架程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 如何在js中引入less的變量

    如何在js中引入less的變量

    這篇文章主要介紹了如何在js中引入less的變量,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • bootstrap模態(tài)框關(guān)閉后清除模態(tài)框的數(shù)據(jù)方法

    bootstrap模態(tài)框關(guān)閉后清除模態(tài)框的數(shù)據(jù)方法

    今天小編就為大家分享一篇bootstrap模態(tài)框關(guān)閉后清除模態(tài)框的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(2)

    JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建(2)

    這篇文章主要介紹了JavaScript?數(shù)據(jù)結(jié)構(gòu)之集合創(chuàng)建,上一篇我們介紹了什么是集合,并且手動實(shí)現(xiàn)了一個(gè)集合的類,本篇基于上篇內(nèi)容繼續(xù)深入介紹需要的小伙伴可以參考一下
    2022-04-04
  • 微信小程序全局狀態(tài)的深入講解

    微信小程序全局狀態(tài)的深入講解

    這篇文章主要介紹了微信小程序全局狀態(tài)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 純JS代碼實(shí)現(xiàn)氣泡效果

    純JS代碼實(shí)現(xiàn)氣泡效果

    js氣泡效果,在項(xiàng)目需求中經(jīng)常遇到。今天小編把大概實(shí)現(xiàn)步驟分享到腳本之家平臺,感興趣的朋友可以參考下
    2016-05-05
  • JS簡單判斷函數(shù)是否存在的方法

    JS簡單判斷函數(shù)是否存在的方法

    這篇文章主要介紹了JS簡單判斷函數(shù)是否存在的方法,涉及javascript函數(shù)運(yùn)行與類型判定相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • js實(shí)現(xiàn)無縫滾動圖

    js實(shí)現(xiàn)無縫滾動圖

    本文主要分享了js實(shí)現(xiàn)無縫滾動圖的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • 微信小程序?qū)崙?zhàn)之輪播圖(3)

    微信小程序?qū)崙?zhàn)之輪播圖(3)

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崙?zhàn)之輪播圖效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • js實(shí)現(xiàn)div色塊拖動錄制

    js實(shí)現(xiàn)div色塊拖動錄制

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)div色塊拖動錄制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • IE11下CKEditor在Bootstrap Modal中下拉問題的解決

    IE11下CKEditor在Bootstrap Modal中下拉問題的解決

    這篇文章主要介紹了IE11下CKEditor在Bootstrap Modal中下拉問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09

最新評論

胶南市| 方正县| 黑山县| 察哈| 扶风县| 家居| 茌平县| 芦山县| 潼关县| 宁陕县| 慈溪市| 太和县| 平顶山市| 手游| 孝昌县| 新田县| 石泉县| 香港| 康保县| 荆门市| 宜州市| 安乡县| 淮阳县| 东海县| 东台市| 涞水县| 凯里市| 西林县| 北宁市| 开远市| 三台县| 大庆市| 乌海市| 修文县| 普陀区| 寻甸| 隆安县| 张北县| 郁南县| 丰台区| 大埔县|