Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产成人一区二区动漫精品,美女又黄又免费的视频,国产麻豆91欧美一区二区

          整合營(yíng)銷(xiāo)服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢(xún)熱線(xiàn):

          ThinkPHP之去掉文章中的所有HTML標(biāo)簽并截取部分內(nèi)容作為簡(jiǎn)介

          了讓初學(xué)者更容易理解,本文寫(xiě)的比較詳細(xì),所以如果你已是技術(shù)大拿,請(qǐng)直接繞過(guò),以免浪費(fèi)你的寶貴時(shí)間,謝謝。

          相信現(xiàn)在很多網(wǎng)站都有文章功能,有文章就基本上少不了要有個(gè)列表頁(yè),網(wǎng)頁(yè)設(shè)計(jì)師們對(duì)文章列表頁(yè)的設(shè)計(jì)也是五花八門(mén),各有各的創(chuàng)意,那我們就拿ThinkPHP旗下的極思維平臺(tái)的列表頁(yè)來(lái)說(shuō),極思維的目前的列表頁(yè)是這樣的:

          大家可以看到,它的布局是塊形式展現(xiàn),每篇文章都是固定的布局,圖片,標(biāo)題,簡(jiǎn)介,如果說(shuō)每篇文章在發(fā)布的時(shí)候都要單獨(dú)的寫(xiě)個(gè)簡(jiǎn)介,單獨(dú)上傳個(gè)封面圖,對(duì)編輯者來(lái)說(shuō)就有些麻煩了,那我們就可以通過(guò)程序讓它自動(dòng)去抓取封面和簡(jiǎn)介,自動(dòng)抓取縮略圖我在之前的文章有講過(guò),大家可以去找下我之前的《ThinkPHP之自動(dòng)獲取文章內(nèi)容中的第一張圖片做為縮略圖》這篇文章,今天我們主要講如何自動(dòng)抓取文章的部分內(nèi)容作為文章的簡(jiǎn)介。

          我們先來(lái)分析一下功能的實(shí)現(xiàn)原理,所謂簡(jiǎn)介,就是簡(jiǎn)單的說(shuō)明一下這篇文章的主要內(nèi)容,不涉及到排版,所以我們只需要純文字,那么問(wèn)題來(lái)了,之前我們?cè)谧ト】s略圖的文章中我們也有說(shuō)到,文章內(nèi)容是由編輯器進(jìn)行排版的,既然有排版樣式,就必定要有HTML樣式,只要保留文字就得把所有的HTML標(biāo)簽都去掉,那怎么去掉呢?

          不用急,PHP有個(gè)專(zhuān)門(mén)去掉HTML的函數(shù),這個(gè)函數(shù)就是 strip_tags ,我們先來(lái)看一下這個(gè)函數(shù)是什么樣的:

          在以上代碼中可以看到,內(nèi)容中有個(gè) <b> 標(biāo)簽,<b> 標(biāo)簽的作用就是字體加粗,我們運(yùn)行一下實(shí)例看下:

          可以很明顯的看到使用了 strip_tags 函數(shù)和沒(méi)使用 strip_tags 函數(shù)的區(qū)別,那是不是直接在ThinkPHP中用這個(gè)函數(shù)就夠了呢,寫(xiě)過(guò)文章的人都知道,文章會(huì)涉及到換行、空格等格式,strip_tags 函數(shù)只能去掉HTML標(biāo)簽,并不能去掉換行、空格等格式,那么怎么樣才能去掉換行和空格呢,別擔(dān)心,強(qiáng)大的PHP也有函數(shù)來(lái)處理這些東西的,PHP中有個(gè)正則替換函數(shù)叫做 ereg_replace ,這個(gè)函數(shù)可以把指定的字符換成我們想要的字符,那么我們的邏輯代碼就可以這樣寫(xiě):

          從上面的邏輯代碼中,我們可以看到替換換行符中處理了三次替換,這是為什么呢,因?yàn)楝F(xiàn)在服務(wù)器系統(tǒng)有很多種,最常用的就有windows、linux兩種系統(tǒng),這兩種系統(tǒng)的換行符是不同的,所以為了兼容不同的服務(wù)器,我們就多替換幾次,其中 \r\n 是替換 linux 和 unix 系統(tǒng)的換行符,\n 是替換 windows 系統(tǒng)的換行符,\r 是替換蘋(píng)果系統(tǒng)的換行符的。

          處理好了HTML之后,接下來(lái)我們就要截取內(nèi)容了,因?yàn)槲恼伦謹(jǐn)?shù)有多有少,既然是簡(jiǎn)介,那我們肯定就只要截取一小段文字了,比如只要50個(gè)字或者100個(gè)字這樣,因?yàn)榫幊袒径际怯糜⑽木帉?xiě)的,對(duì)中文的識(shí)別較差,所以在編程計(jì)算長(zhǎng)度時(shí),一個(gè)中文漢字是算兩個(gè)字符的,所以如果我們要截取50個(gè)中文的話(huà),截取長(zhǎng)度就是乘以二,那就是100了,其實(shí)這都不算什么問(wèn)題,但是在實(shí)際過(guò)程中,按這樣的方式去截取的話(huà),遇到文章包含中英文的時(shí)候就可能會(huì)出現(xiàn)亂碼的情況,為了避免出現(xiàn)亂碼,我們可以用一個(gè)非PHP核心函數(shù) mb_strlen 來(lái)解決,為什么說(shuō) mb_strlen 是非PHP核心函數(shù)呢,因?yàn)樵谑褂?mb_strlen 函數(shù)前需要確保在 php.ini 中有加載 php_mbstring.dll,要不然就會(huì)出現(xiàn) 未定義函數(shù) 的問(wèn)題,那我們就來(lái)把上面的代碼改進(jìn)一下,加上截取字?jǐn)?shù)的功能,得到代碼如下:

          然后,我們以ThinkPHP3.2為例,把上面的自定義函數(shù)方法添加到ThinkPHP框架中核心公共函數(shù)目錄(Common)里的 functions.php 文件的最后面即可。

          調(diào)用方法為:{$vo.content|cutstr_html=###,100}

          上面調(diào)用方法中的 ### 是表示文章內(nèi)容,100為要截取的字?jǐn)?shù)長(zhǎng)度。

          謝謝你的閱讀,如果你有更好的方法或在應(yīng)用過(guò)程中遇到問(wèn)題可以在評(píng)論區(qū)提問(wèn)或者直接私信我,我會(huì)定期回復(fù),碼農(nóng)劉小橋與你一起學(xué)習(xí),共同進(jìn)步。

          一篇文章講解“模型-內(nèi)置標(biāo)簽之條件標(biāo)簽”,本篇文章講解“模板-內(nèi)置標(biāo)簽之資源文件加載”。


          資源文件加載

          資源文件加載即是在模板中引入CSS、JS等資源文件。

          傳統(tǒng)方式的導(dǎo)入外部JS和CSS文件的方法是直接在模板文件使用:

          1. load標(biāo)簽

          系統(tǒng)提供了專(zhuān)門(mén)的標(biāo)簽來(lái)簡(jiǎn)化上面的導(dǎo)入:

          ①新建Index控制器,并新建index方法

          ②新建index.html模板,并引入資源文件

          ③新建script.js與style.css資源文件

          script.js文件:

          style.css文件:

          注意:

          1. ThinkPHP中資源文件的位置為“public/static/”下。

          預(yù)覽:

          ④配合“模板輸出替換”使用

          由于文件路徑不對(duì),導(dǎo)致資源文件加載失敗,可以配合模板輸出替換使用。

          在config/template.php文件中,定義模板輸出替換:

          ⑤在index.html模板中使用模板輸出替換

          預(yù)覽:


          2. 同時(shí)加載多個(gè)資源文件

          在index.html模板中,使用load標(biāo)簽同時(shí)加載多個(gè)資源文件。

          預(yù)覽:

          注意:

          1. load標(biāo)簽支持同時(shí)加載多個(gè)資源文件,文件之間用逗號(hào)隔開(kāi)。


          3. js與css標(biāo)簽

          系統(tǒng)還提供了兩個(gè)標(biāo)簽別名js和css,用法和load一致。

          在index.html模板文件中,使用js與css標(biāo)簽加載資源文件。

          預(yù)覽:

          ThinkPHP5連載為卓象程序員原創(chuàng),轉(zhuǎn)載請(qǐng)聯(lián)系卓象程序員

          關(guān)注卓象程序員,定期發(fā)布技術(shù)文章

          下一篇講解“模板-內(nèi)置標(biāo)簽之標(biāo)簽嵌套+原生PHP”

          ?

          些天向大家分享了一些ThinkPHP操作數(shù)據(jù)庫(kù)的教程,不過(guò)一下子要記住這么多東西不是一件容易的事情,所以大家需要在實(shí)戰(zhàn)中邊開(kāi)發(fā)邊學(xué)習(xí),才能更輕松的掌握技能。今天,我要向大家分享如何使用ThinkPHP模版標(biāo)簽來(lái)實(shí)現(xiàn)循環(huán)輸出功能。

          圖片來(lái)自網(wǎng)絡(luò)

          ThinkPHP內(nèi)置很多模版標(biāo)簽,今天我只向大家分享循環(huán)輸出標(biāo)簽。以后會(huì)逐漸分享其他常用模板標(biāo)簽的用法。

          ThinkPHP內(nèi)置模版標(biāo)簽

          Foreach

          Foreach標(biāo)簽用來(lái)循環(huán)輸出數(shù)據(jù),通常用于輸出數(shù)據(jù)庫(kù)select查詢(xún)結(jié)果,如下所示。

          控制器代碼

          模板代碼

          最終輸出結(jié)果如下:

          輸出結(jié)果

          在foreach標(biāo)簽中,name為控制器賦值的變量名(users),item為循環(huán)內(nèi)的變量名(user)。

          Volist

          Volist標(biāo)簽與Foreach類(lèi)似,不過(guò)它擁有更多用法,最基本用法如下:

          Volist基本用法

          輸出結(jié)果

          可以看到,Volist標(biāo)簽中只是把item換成id,其他完全相同。

          但是如果我們只需要輸出第1-10(注意數(shù)組是從0開(kāi)始的)條數(shù)據(jù),可以這樣用:

          Volist的offset用法

          輸出結(jié)果

          如果數(shù)據(jù)為空時(shí),我們還可以使用empty屬性來(lái)輸出指定信息:

          Volist的empty用法

          輸出結(jié)果

          由于我們使用Table來(lái)輸出數(shù)據(jù),而empty不支持直接傳入html標(biāo)簽,所以“無(wú)用戶(hù)信息”被解析到了table外。我們可以這樣解決:

          控制器賦值empty

          Volist的empty接收變量

          輸出結(jié)果

          For

          for標(biāo)簽的用法很簡(jiǎn)單,如下:

          <for start="開(kāi)始值" end="結(jié)束值" step="步進(jìn)值" name="循環(huán)變量名" >輸出內(nèi)容</for>

          開(kāi)始值、結(jié)束值、步進(jìn)值和循環(huán)變量都可以支持變量,開(kāi)始值和結(jié)束值是必須,其他是可選。name的默認(rèn)值是i,步進(jìn)值的默認(rèn)值是1,舉例如下:

          for標(biāo)簽用法

          輸出結(jié)果

          結(jié)論

          在開(kāi)發(fā)中,我們需要經(jīng)常用到循環(huán)輸出功能,掌握循環(huán)輸出的用法志在必得。

          如果您覺(jué)得小編的教程對(duì)您有所幫助,請(qǐng)點(diǎn)擊關(guān)注支持小編,您的關(guān)注是對(duì)小編最大的鼓勵(lì)。


          主站蜘蛛池模板: 农村乱人伦一区二区| 变态拳头交视频一区二区 | 色综合久久一区二区三区| 精品动漫一区二区无遮挡| 国产在线aaa片一区二区99| 国产凸凹视频一区二区| 久久无码人妻一区二区三区| 无遮挡免费一区二区三区| 亚洲AV无码一区二区三区网址 | 亚洲一区二区三区在线播放| 久久久久人妻精品一区| 精品乱子伦一区二区三区| 国产免费av一区二区三区| 人妻av综合天堂一区| 亚洲一区二区三区精品视频| 国产精品熟女一区二区| 久久久国产一区二区三区| 综合激情区视频一区视频二区| 亚洲AV无码国产一区二区三区| 亚洲国产视频一区| 人妻AV中文字幕一区二区三区| 国产av福利一区二区三巨| 人妻内射一区二区在线视频| 极品少妇伦理一区二区| 国产丝袜一区二区三区在线观看 | 色综合久久一区二区三区| 亚洲中文字幕一区精品自拍| 2020天堂中文字幕一区在线观 | 亚洲AV日韩精品一区二区三区| 国内精品视频一区二区三区| 久久精品国内一区二区三区| 最新欧美精品一区二区三区 | 国产伦精品一区二区三区四区| 韩国一区二区三区视频| 国产乱码精品一区二区三区| 无码人妻aⅴ一区二区三区有奶水| 国模无码视频一区二区三区| 国产suv精品一区二区6| 国产一区二区精品久久凹凸| 国产a∨精品一区二区三区不卡| 亚洲av日韩综合一区在线观看|