国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PHP的格式化HTML代碼功能的設(shè)計與實現(xiàn)

2017-11-17 22:12:07羅良夫張麗
電腦知識與技術(shù) 2017年30期
關(guān)鍵詞:格式化

羅良夫++張麗

摘要:隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,大量的信息系統(tǒng)采用了B/S架構(gòu),從而產(chǎn)生了大量的HMTL頁面文件,為了解決大量HTML代碼不易維護(hù)與管理的問題,采用了PHP作為主要技術(shù)開發(fā)了格式化HTML代碼的功能,該功能可以準(zhǔn)確識別單目及雙目HTML標(biāo)記,且具有良好的擴展性,能夠支持HTML5及其他動態(tài)網(wǎng)頁語言標(biāo)簽的識別及格式化。

關(guān)鍵詞:PHP;HTML;格式化;標(biāo)記

中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)30-0116-02

Design and Implementation of Formatted HTML Code Function Based on PHP

LUO Liang-fu1, ZHANG Li2

(1.wuhan Guanggu Vocational College, Wuhan 430073, China; 2. Hubei Traffic Vocational and Technical College, Wuhan 430079, China)

Abstract: With the development of Internet technology, a large number of information systems using B/S architecture, resulting in a large number of HMTL pages, in order to solve a large number of HTML code is not easy to maintenance and management problems, using PHP as the main technology in the development of the HTML code formatting function, the function can accurately identify the monocular and binocular HTML markers, and has extended well, the identification and the format can support HTML5 and other dynamic web language tags.

Key words: PHP; HTML; format; sign

1 背景

互聯(lián)網(wǎng)時代的到來,促使HTML網(wǎng)頁技術(shù)的應(yīng)用變得非常廣泛,目前幾乎所有的應(yīng)用信息系統(tǒng)都采用了B/S結(jié)構(gòu),一般中小型公司的頁面可能達(dá)到幾十個,而大型網(wǎng)站的頁面更是多達(dá)上百個,信息系統(tǒng)頁面的開發(fā)經(jīng)常出現(xiàn):開發(fā)周期長、開發(fā)人員多、代碼不規(guī)范、代碼不易管理等問題,導(dǎo)致后期難以進(jìn)行擴展升級和維護(hù),所以HTML代碼的格式規(guī)范化問題顯得非??傄?,為了能有效解決HTML代碼規(guī)范化問題,本文采用了PHP語言來實現(xiàn)格式化HTML代碼的功能。

本功能采用的PHP語言是目前市場上非常流行的一種腳本語言,英文名是Hypertext Preprocessor,即超級文本預(yù)處理語言。本次設(shè)計采用PHP的原因是,一方面PHP能很好地嵌入到HTML中,對HTML的支持比較完善且運行的效率非常高;另外一方面,PHP能夠在UNIX、LINUX、WINDOWS等主流操作系統(tǒng)平臺中運行,使得格式化HMTL功能具有跨平臺的特性,而且只需要對標(biāo)記內(nèi)容進(jìn)行擴充,就能夠支持多種動態(tài)網(wǎng)頁標(biāo)記語言的規(guī)范化。

2 Php文件的操作方法

HTML代碼一般采用文件形式進(jìn)行管理與存放,PHP在進(jìn)行代碼格式化前,需要先將HTML文件讀入到內(nèi)存中,PHP的文件操作一般分為3個步驟:打開文件,讀寫文件,關(guān)閉文件三步,具體的使用方法如下。

2.1 php文件打開函數(shù)

fopen函數(shù)將指定文件綁定到流中,函數(shù)原型是:fopen(filename,mode,include_path,context),其中filename是打開的文件或 URL,mode是該文件的訪問類型(讀r寫/w/追加a等),成功將文件綁定到流,失敗返回FALSE。

2.2 php文件關(guān)閉函數(shù)

fclose函數(shù)關(guān)閉通過fopen打開的文件,函數(shù)原型是:fclose(file),其中file是fopen函數(shù)返回的文件指,成功時返回TRUE,失敗時返回 FALSE。

2.3 php文件讀取字符函數(shù)

fgetc函數(shù)從文件指針處讀取一個字符,函數(shù)原型是:fgetc(file),其中file是通過fopen函數(shù)打開的文件指針,成功時返回一個字符,指針指向文件末尾時返回 FALSE。

2.4 php寫入文件函數(shù)

fwrite函數(shù)把 string 的內(nèi)容寫入文件指針處,函數(shù)原型是:fwrite(file,string,length),其中file:是要寫入的文件,string是要寫入的字符串,length是要寫入的最大字節(jié)數(shù),成功時返回要寫入的字符數(shù),錯誤時返回 FALSE。

3 Php數(shù)組的基本操作

HTML是一種標(biāo)記語言,所有的元素標(biāo)記都以中括號<>與普通文本進(jìn)行區(qū)分,為了能在代碼中對HTML標(biāo)記進(jìn)行識別與格式化,本次設(shè)計采用數(shù)據(jù)結(jié)構(gòu)進(jìn)行處理。PHP數(shù)組的基本操作包括:創(chuàng)建數(shù)組,添加數(shù)組元素,刪除數(shù)組元素,具體使用方法如下所示:

3.1 php創(chuàng)建數(shù)組

array函數(shù)用來創(chuàng)建數(shù)組,函數(shù)原型是:array(key=>value),其中key是數(shù)組的鍵, value是數(shù)組元素的值,成功時返回數(shù)組的指針,失敗返回NULL。endprint

3.2 php刪除數(shù)組末尾元素

array_pop函數(shù)用來刪除數(shù)組末尾元素,函數(shù)原型是:array_pop(array),其中array是被操作的數(shù)組,成功時返回數(shù)組的最后一個值。

3.3 php數(shù)組尾部添加元素函數(shù)

Array_pop函數(shù)用來在數(shù)組尾部添加新元素,函數(shù)原型是:array_push(array,value),其中array是要添加的數(shù)組,value1是要添加的值,返回新數(shù)組的長度。

4 格式化HTML代碼功能的算法及關(guān)鍵代碼

格式化HTML的核心思想是,對HTML代碼在適當(dāng)位置添加空格符與換行符,考慮到縮進(jìn)的問題,所以需要用數(shù)組保存HTML標(biāo)記的位置[2],另外還需考慮中括號中的內(nèi)容是否是有效的HTML標(biāo)記等問題,具體的算法步驟如下所示。

4.1 初始化HMTL代碼

為了后續(xù)格式化HTML代碼能夠正常處理,需要先將空白行、每行左邊的空格及tab字符刪除,關(guān)鍵代碼如下:

while(!feof($fp)) {$s=ltrim(fgets($fp));

if($s!='\r\n' && $s!='\n' && $s!='\r' && $s!='')

fwrite($fpc,$s); }

4.2 格式化HMTL代碼

格式化HMTL代碼是本功能的核心,因為HTML標(biāo)記分成單目與雙目標(biāo)記,所以要分別對代碼進(jìn)行解析,首先判斷前一個字符是否是\n且不是縮進(jìn)數(shù)組的第一個元素,不是則換行,否則輸出(縮進(jìn)數(shù)組長度-1)*4個空格,后面輸出<元素>與換行符。

接著判斷前一個字符是否是\n且不是縮進(jìn)數(shù)組的第一個元素,不是則換行[3],在代碼之前輸出(縮進(jìn)數(shù)組長度-1)*4個空格,接著刪除縮進(jìn)數(shù)組中到當(dāng)前下標(biāo)的所有元素,然后輸出HTML元素的關(guān)閉標(biāo)簽<元素/>,最后在HTML元素的關(guān)閉標(biāo)簽后輸出換行。換行后輸出普通文本,如果遇到HTML的<>標(biāo)記,則輸出4個空格,,關(guān)鍵代碼如下:

if($f==false && $p!="\n") fwrite($tp,"\n",1); else $f=false;

fwrite($tp,"".$pp."",strlen("".$pp.""));

for($j=count($sj)-1;$j>=0;$j—) if($sj[$j]!=$pp) array_pop($sj);

else array_pop($sj);

4.3 運行效果圖

圖1 格式化前的html代碼

圖2 格式化后的html代碼

5 結(jié)束語

為了提供HTML代碼的管理與維護(hù),設(shè)計實現(xiàn)了格式化HMTL代碼功能,采用了性能較高的PHP語言,能夠支持單目與雙目標(biāo)記的識別,目前只支持對靜態(tài)HTML標(biāo)記進(jìn)行識別與規(guī)范化,未來可以需要增加標(biāo)記庫來支持更多的動態(tài)標(biāo)記語言。

參考文獻(xiàn):

[1] 康賢昆. PHP開發(fā)框架的研究與實現(xiàn)[D]. 天津: 天津大學(xué), 2007.

[2] 徐孝日. 從HTML格式文件到TXT文件的轉(zhuǎn)換[J]. 石油工業(yè)計算機應(yīng)用, 2000(3):32-33.

[3] 邊娜. 數(shù)據(jù)庫內(nèi)容轉(zhuǎn)換為HTML格式文件的方法[J]. 科技情報開發(fā)與經(jīng)濟, 2001(2):39-40.

猜你喜歡
格式化
現(xiàn)代人守則:昏死之前請把手機格式化
格式化
詩林(2016年5期)2016-10-25 07:51:39
直接格式化對硬盤的壽命有影響嗎
電腦硬盤格式化知識點滴
罗江县| 类乌齐县| 久治县| 湘阴县| 福州市| 盐源县| 台江县| 剑川县| 孟州市| 依兰县| 安仁县| 贵阳市| 乌鲁木齐市| 攀枝花市| 麻阳| 贵溪市| 文昌市| 和平县| 保靖县| 惠东县| 定安县| 云安县| 马龙县| 开江县| 丹江口市| 津市市| 大安市| 西峡县| 正安县| 新郑市| 盘山县| 霍林郭勒市| 本溪| 昭通市| 洪泽县| 亚东县| 伊金霍洛旗| 贡觉县| 波密县| 仁布县| 九寨沟县|