整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          ThinkPHP之去掉文章中的所有HTML標簽并截取部分內容作為簡介

          了讓初學者更容易理解,本文寫的比較詳細,所以如果你已是技術大拿,請直接繞過,以免浪費你的寶貴時間,謝謝。

          相信現在很多網站都有文章功能,有文章就基本上少不了要有個列表頁,網頁設計師們對文章列表頁的設計也是五花八門,各有各的創意,那我們就拿ThinkPHP旗下的極思維平臺的列表頁來說,極思維的目前的列表頁是這樣的:

          大家可以看到,它的布局是塊形式展現,每篇文章都是固定的布局,圖片,標題,簡介,如果說每篇文章在發布的時候都要單獨的寫個簡介,單獨上傳個封面圖,對編輯者來說就有些麻煩了,那我們就可以通過程序讓它自動去抓取封面和簡介,自動抓取縮略圖我在之前的文章有講過,大家可以去找下我之前的《ThinkPHP之自動獲取文章內容中的第一張圖片做為縮略圖》這篇文章,今天我們主要講如何自動抓取文章的部分內容作為文章的簡介。

          我們先來分析一下功能的實現原理,所謂簡介,就是簡單的說明一下這篇文章的主要內容,不涉及到排版,所以我們只需要純文字,那么問題來了,之前我們在抓取縮略圖的文章中我們也有說到,文章內容是由編輯器進行排版的,既然有排版樣式,就必定要有HTML樣式,只要保留文字就得把所有的HTML標簽都去掉,那怎么去掉呢?

          不用急,PHP有個專門去掉HTML的函數,這個函數就是 strip_tags ,我們先來看一下這個函數是什么樣的:

          在以上代碼中可以看到,內容中有個 <b> 標簽,<b> 標簽的作用就是字體加粗,我們運行一下實例看下:

          可以很明顯的看到使用了 strip_tags 函數和沒使用 strip_tags 函數的區別,那是不是直接在ThinkPHP中用這個函數就夠了呢,寫過文章的人都知道,文章會涉及到換行、空格等格式,strip_tags 函數只能去掉HTML標簽,并不能去掉換行、空格等格式,那么怎么樣才能去掉換行和空格呢,別擔心,強大的PHP也有函數來處理這些東西的,PHP中有個正則替換函數叫做 ereg_replace ,這個函數可以把指定的字符換成我們想要的字符,那么我們的邏輯代碼就可以這樣寫:

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

          處理好了HTML之后,接下來我們就要截取內容了,因為文章字數有多有少,既然是簡介,那我們肯定就只要截取一小段文字了,比如只要50個字或者100個字這樣,因為編程基本都是用英文編寫的,對中文的識別較差,所以在編程計算長度時,一個中文漢字是算兩個字符的,所以如果我們要截取50個中文的話,截取長度就是乘以二,那就是100了,其實這都不算什么問題,但是在實際過程中,按這樣的方式去截取的話,遇到文章包含中英文的時候就可能會出現亂碼的情況,為了避免出現亂碼,我們可以用一個非PHP核心函數 mb_strlen 來解決,為什么說 mb_strlen 是非PHP核心函數呢,因為在使用 mb_strlen 函數前需要確保在 php.ini 中有加載 php_mbstring.dll,要不然就會出現 未定義函數 的問題,那我們就來把上面的代碼改進一下,加上截取字數的功能,得到代碼如下:

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

          調用方法為:{$vo.content|cutstr_html=###,100}

          上面調用方法中的 ### 是表示文章內容,100為要截取的字數長度。

          謝謝你的閱讀,如果你有更好的方法或在應用過程中遇到問題可以在評論區提問或者直接私信我,我會定期回復,碼農劉小橋與你一起學習,共同進步。

          eb前端開發課程:html語法文本格式化標簽。

          講課人:波波老師。

          講完段落,接下來看文本格式化標簽,像word中一樣,在文本中也可以為文字設置粗體、斜體、下劃線等效果。為此,html準備了專門的文本格式化標簽,使文本以特殊的方式顯示。常見的文本格式化標簽有這些。

          然后是看斜體,然后是刪除線、下劃線、上標、下標文本、不要代碼片段。然后看還有small、小字體。

          們通常用富文本框編輯內容存在數據庫中,在做列表顯示數據的時候不想顯示原來的樣式,用自定義函數格式化html標簽即可。

          自定義函數

          alter function [dbo].[dropHtmlTag](@cont varchar(max))

          returns varchar(max)

          as

          begin

          --去掉style標簽

          declare @stylecount int;

          set @stylecount = charindex('<style>',@cont);

          while @stylecount>0

          begin

          select @cont=replace(@cont, SUBSTRING(@cont,CHARINDEX('<style>',@cont),CHARINDEX('</style>',@cont)-CHARINDEX('<style>',@cont)+8),'');

          set @stylecount = charindex('<style>',@cont);

          end


          主站蜘蛛池模板: 国产精品无码一区二区三区免费| 精品亚洲一区二区三区在线播放| 亚洲国产AV一区二区三区四区| 日韩一区二区在线观看| 2020天堂中文字幕一区在线观| 亚洲美女高清一区二区三区| 国产一区二区好的精华液| 免费视频精品一区二区三区| 中文无码AV一区二区三区| 国产成人高清亚洲一区久久| 国产福利无码一区在线| 国产乱码一区二区三区| 日韩精品一区二区亚洲AV观看 | 日本片免费观看一区二区| 不卡无码人妻一区三区音频| 一区二区三区在线视频播放| 日韩精品一区二区午夜成人版 | 成人免费观看一区二区| 在线播放一区二区| 日本内射精品一区二区视频| 精品福利一区二区三| 日本成人一区二区| 久久91精品国产一区二区| 色婷婷一区二区三区四区成人网| 久久久精品人妻一区亚美研究所| 国产精品一区二区久久国产| 久久久91精品国产一区二区| 久久国产免费一区| 亚洲视频一区调教| 亚洲另类无码一区二区三区| 国产无人区一区二区三区| 免费人人潮人人爽一区二区| 成人一区二区免费视频| 另类ts人妖一区二区三区| 免费无码一区二区| 日本一区二区三区在线网 | 国产一区二区三区免费在线观看| 成人精品一区二区三区校园激情 | 亚洲日韩激情无码一区| ...91久久精品一区二区三区 | 一区二区三区中文|