了讓初學者更容易理解,本文寫的比較詳細,所以如果你已是技術大拿,請直接繞過,以免浪費你的寶貴時間,謝謝。
相信現在很多網站都有文章功能,有文章就基本上少不了要有個列表頁,網頁設計師們對文章列表頁的設計也是五花八門,各有各的創意,那我們就拿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為要截取的字數長度。
謝謝你的閱讀,如果你有更好的方法或在應用過程中遇到問題可以在評論區提問或者直接私信我,我會定期回復,碼農劉小橋與你一起學習,共同進步。
、 結構
一、標記<Html> 建立HTML文檔
<Head> 設置網頁頭部和其它信息
<Body> 設計文件格式及內文所在<Body> 元素的屬性
Text 設置頁面文字的送顔色 Bgcolor 設置頁面背景的顡色
Background 設置頁面的背景圖像 Link設置頁面黙認的顔色
Bgproperties 設置頁面的背景圖像為固定,不隨頁面的滾動而滾動
Alink 設置鼠標正在單擊時候的鏈接顔色 Vlink 設置訪問過后的鏈接顔色
Topmargin 設置頁面的上邊距 Leftmargin 設置頁面的左邊距
二、頭部
標記 <Base> 當前文檔的URL全稱 <Title>設置顯示在瀏覽器在上方的標題內容
<Isindex> 表明該文檔是一個可用于檢索的網關腳本
<Meta> 有關文檔本身的信息,例如用于查詢的關鍵詞,用于獲取該文檔的有效期等
<Style> 設置CSS層疊樣式表的內容
<link> 設置外部文件的鏈接 <script> 設置頁面中程序腳本的內容
<Mate> 標記屬性
Http-Equiv 生成一個HTTP標題域,它的取值與另一個屬性相同,
例如Http-Equiv=Expires,實際取值由Content確定
Name 如果元數據是以關鍵字/取值的形式出現的,Name 表示鍵字,
如Author或ID
Content 關鍵字/取值的內容
三、文字
文字標記 <HNumber>……<1HNumber> Number=1.2.3.4.5.6
分別指1至6級標題
<Font>文字
文字的修飾標記 <B>/<strong> 粗體 <I>/<Em>/<cite> 斜體
<Sup>上標 <sub>下標 <Big>大字號 <small>小字號
<U>下劃線 <S>/<strike>刪除線 <Address>地址
<Tt>打字機文字 <Blink>閃爍文字(只適用于Netscape瀏覽器)
<Code>/<samp>等寬 <kbd>鍵盤輸入文字 <Var>聲明變量
<Fant>標記的屬性
Face 字體 Size字號 Color顔色
四.列表
列表標記 <Ul>無序列表 <Ol>有序列表 <Dir>回錄列表 <Dl>定義列表
<Meru>菜單列表 <Dt>·<Dd>定義列表的標記 <Li>列表項目的標記
<Ul><Ol>標記的屬性 Type設置列表類型 start設置列表起始屬性
Type的屬性值 1 數字 a 小寫字母 A 大寫字母 i小寫羅馬數字
I 大寫羅馬數字 Disc ● Circle ○ square □
五.鏈接
鏈接標記 <A> 鏈接
<A>標記的屬性 Href 指定鏈接地址 Name給鏈接命名
Title設置鏈接提示文字 Target指定鏈接的目標窗口
Target屬性值 -parent在上一級窗口中打開。一般使用分幀的框架頁會經常使用
-bank在新窗口中打開
-self在同一個幀或窗口中打開.這項一般不用設置
Href屬性值 http:// 進入萬維網站點 news://啟動新聞討論
ftp:// 進入文件傳輸服務器 mailto:// 啟動新聞討論組
telnet:// 啟動telnet方式 gopher://訪問一個gopher服務器
六.圖片
圖片標記 <Img>圖片 <Map>圖像映射 <Area>圖像映射中定義區域
<lmg>標記的屬性 src圖像的源文件 Alt提示文字 Width寬度
Height高度 Vspace垂直間距 Hspace水平間距 Align排列 Border邊框
Align屬性值 Top文字的中間線居于圖片上方 Middle文字的中間線居于圖片中間
Bottom文字的中間線居于圖片底部 Left 圖片在文字的左側
Right圖片在文字的右側 Absbottom文字的底線居于圖片底部
Absmiddle文字的底線居于圖片中間 Baseline英文文字基線對齊
Texttop英文文字上邊線對齊
Shape屬性值
Rect矩形區域 Circle橢圓形區域 Poly多邊形區域
七.表格
1.表格標記 <Table>…</Table>表格標記 <Tr>…</Tr>行標記
<Td>…</Td>單元格標記 <Th>表頭標記
<Table>標記屬性 Bordercolor 表格邊框色 Borde表格邊框的寬度
Bordercolorlight 表格邊框亮邊框色(左上邊框顔色)
Bordercolordark 表格暗邊框色(右下邊框顔色)
Bordercolor 行的邊框顔色 Width表格的寬度 Height表格的高度
Bgcolor表格的背景顔色 Background表格的背圖像
<Tr>標記屬性 Align行內容的水平對齊 Valign 行內容的垂直對齊
Bgcolor 行的背景顔色 Background 行的背景圖像
Bordercolor 行的邊框顔色 Bordercolorlight 行的亮邊框顔色
Bordercolordark 行的暗邊框顔色
<Td>標記屬性 Align單元內容的水平對齊 Valign單元格內容的垂直對齊
Bgcolor 單元格的背景顔色 Background 單元格的背景圖像
Bordercolor單元格的背景顔色 Bordercorlorlight單元格的亮邊框顔色
Brodercolordark 單元格的暗邊框顔色 Width 單元格的寬度
Height單元格的高度
<Th>標記屬性 Align表頭內容的水平對齊 Valign表頭內容的垂直對齊
Bgcolor 表頭的背景顔色 Background表頭的背景圖像
Bordercolor表頭的邊框顔色 Bordercolorlight 表頭的亮邊框顔色
Bordercolordark 表頭的暗邊框顔色 Width 表頭的寬度 Height 表頭的高度
八.表單
1.表單標記 <Form>表單標記 <Input>表單輸入標記
<select>菜單和列表標記 <Option>菜單和列表項目標記
2.屬性 <Form> Name表單的名稱
Method 定義表單結果從瀏覽器傳送到服務器的方法,一般有兩種方法:get,post
Action 用來定義表單處理程序(一個Asp,CGI等程序)的位置(相對地址或絕對地址)
<lnput>標記屬性 Name 域的名稱 Type域的類型
Maxlength 域的最大輸入字符數 size域的寬度 Value 域的默認值
<Select>標記屬性 Name 菜單和列表的名稱 size 顯示的選項數目
Multiple 列表中的項目多選 Value 選項值 selected默認選項
<Texrarea>標記屬性 Name 文字域的名稱 Rows文字域的行數
Cols 文字域的列數 Value 文字域的默認值
Type屬性值 Text 文字域 Password 密碼域 File 文件域
Checkbox復選框 Redio單選框 Button普通按扭
Submit 提交按鈕 Reset重置按鈕 Hidden隱藏域Image圖像域
九.滾動
滾動標記 <Marquee>
<Marquee>標記屬性 Direction 滾動方向 up 文字向上滾動 Left文字向左滾動
Behavior 滾動方式 Scroll 循環往復
Side 只做一次滾動
Alternate 交替進行滾動
ScrollAmount 滾動速度
ScrollDelay 滾動延遲
Trim函數用來剔除首尾空格
十.框架
1.標記 <Frameset> 框架邊框標記 <Frame> 框架標記 <Iframe>浮動框架標記
<Frameset>標記屬性 Cols列 Rows行
<Frame> 標記屬性 src框架中顯示頁面源文件的路徑
FrameBorder 框架邊框顯標屬性 FrameSpacing框架邊框寬度屬性
Scrolling框架滾動條顯示屬性 NoResize 框架尺寸調整屬性
BorderColor 框架邊框顔色屬性 MarginWidt 框架邊框緣寬度屬性
MarginHerght框架邊緣高度屬性
<1frame> 標記屬性 src浮動框架中顯示頁面源文件的路徑
Width 浮動框架的寬度 Height 浮動框架的高度
Name 浮動框架的名稱
Align 浮動框架的排列方式 Left表示居左 Center表示居中 Right表示居右
FrameBorder 框架邊框顯示屬性 FrameSpacing 框架寬度屬性
Scrolling 框架滾動條顯示屬性 ( yes顯示 No不顯示 Auto根據頁面的長度自動判斷是否晶粒示滾動條
NoResize 框架尺寸調整屬性 BorderColor框架的顔色
MarginWidth 框架邊緣寬度屬性 MarginHeight 框架邊緣高度屬性
插入刷新
步驟:1.選擇"查看/文件頭內容"
2.在插入面板上,打開HTML選項卡
優化代碼
打開文件窗口,執行"命令、清理HTML"命令
文本換行:Enter 行距較大
Enter + Shift 行距較小
插入水平線設置顔色:單擊屬性面板中的快捷標簽編輯器按鈕
在代碼中鍵入"color = #顔色值"
當圖像無法顯示時將顯示這段文字:
圖像屬性中的替代→輸入文字
插入鼠標經過圖像:準備兩張圖像
在文件窗口中,將光標放置于需要翻轉圖像位置→插入工具欄中單擊鼠標經過圖像
Ⅱ.使用導航條:
在"常用"對象組中,單擊"圖像"小三角→導航條
插入圖像占位符:圖像小三角→圖像占位符
Flash動畫的背景實現透明 參數wmode 值 transparent
插入 Java Applet
插入表單
插入表單域:對象面板上"表單"→插入表單
插入文本域:單擊面板上的插入文本域. 初始值 = 打開時顯于的文字
插入密碼框:在屬性面板上選擇密碼
插入多行文本域:在類型后選擇多行
插入隱藏域:對象面板→插入隱藏域
插入按鈕:標簽用來設置按鈕上顯示的文本
插入圖像提交按鈕=圖像域:
插入文件上傳按鈕=文件域:
插入單選框
插入單選按鈕組:Label文字說明 Value 單選按鈕的值
插入復選框
菜單/插入列表:列表值→
插入跳轉菜單:(
制作網頁鏈接
URL統一資源定位器
目標:_blank在一個新的未命名的瀏覽器窗口中打開
_parent如果是嵌套的框架,鏈接會在父框架或窗口中打開,否則=_top
_top在完整的瀏覽器中打開
創建搜索頁
運行中輸入:
Inetmgr (IIS
Odbcad32 (odbc
Asp對象
Applicatipn 在給定的應用程序的所有用戶間共享信息,并在服務器運行期間持久地保存數據。
集合: Contents
staticObjects
Item(變量值)=設置資料變量的值
Key(變量名稱)=設置資料變量的名稱
Count(變量資料的數量)=表示
Coutents集合中資料的總數量
方法: Lock
Unlock
事件: Applicatipn_Onstart
Application_OnEnd
Session 存儲特定的用戶會話所需的信息
屬性:CodePage
LCID
SessionID
Timeout
集合:Contents
StaticObjects
方法:Abandon
事件:Session_Onstart
Session_OnEnd
Response 用來控制發送給用戶的信息,包括直接發送信息給瀏覽器,重定位瀏覽器到另一個URL或設置Cookie值
屬性: Buffer
CacheControl
Charset
ContentType
Expires
ExpiresAbsolute
IsClientConnected
PICS
Status
集合: Cookies
方法: AddHeader
AppendToLog
BinaryWrite
Clear
End
Flush
Redirect
Write
Request 訪問任何基于HTTP請求傳遞的信息,常見的有從HTML表單用Post方法或Get方法傳遞的參數,Cookie或用戶認證等。
屬性: TotalBytes
集合: ClientCertificate
Cookies
Form
QueryString
ServerVaiables
方法: BinaryRead
Server 提供對服務器方法和屬性的訪問
屬性: ScriptTimeout
集合: 無
方法: CreatObject
HTMLEncode
MapPath
URLEncode
Recordset
MoveNext 將前數據記錄移至下一條
MovePrevious 將當前數據記錄移至上一條
MoveFirst 將當前數據記錄移至第一條
MoveLast 將當前數據記錄移至最后一條
AbsolutePosition=N 將當前數據記錄移至第N條
EOF 當前數據記錄是否移過了最后一條(發生于向下移動時)
BOF 當前數據記錄是否移過了第一條 (發生于向上移動時)
VBScript 運算符
算術運算符
指數 取負 乘法 除法 加法 減法 取模 連接 整數除法
∧ - * / ﹢ ﹣ Mod & \
比較運算符
相等 不相等 小于 大于 小于或等于 大于或等于 對象相象
= <> < > <= >= IS
邏輯運算符
邏輯非 邏輯與 邏輯或 異或 邏輯等于 邏輯蘊含
Not And Or Xor Eqv Imp
html 段落
通過<p>標簽來創建段落(paragraph)
<p>這是一個段落</p>
瀏覽器會自動在段落的前后添加空格
●如果你希望在不產生一個新段落的情況下進行換行(新行),請使用<br>標簽
<p>這是一個段落</p>
<p>這是另一個段落</p>
<p>這個段落<br>演示了換行的效果</p>
●<br>元素是一個空的html元素,它沒有結束標簽.效果如下:
二 html文本格式化
html使用標簽<b>與<i>對輸出的文本進行格式化,如:粗體(bold)和斜體(italic).這些html標簽被稱為格式化標簽
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>愛你的阿平</title>
</head>
<body>
<p><b>定義粗體文本</b></p>
<p><em>定義著重文字</em></p>
<p><i>定義斜體字</i></p>
<p><small>定義小號字<small></p>
<p><strong>定義重要的文本<strong></p>
<p><sub>下標字</sub></p>
<p><sup>上標字</sup></p>
<p><ins>定義插入字</ins></p>
<p><del>定義刪除字</del></p>
</body>
</html>
結果如下:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。