過上一章的內容,現在網頁文件中,我們還須要去除的就是html代碼了。
下面我們要研究一下html代碼的主要特點,不管什么樣的HTML代碼,他們均被左右尖括號所包圍,就像這個樣子<代碼>,因此,我們就有了去除的方法,把括號中的內容和聯通括號一起去除掉,就可以了。
下面開始,根據我們的想法,可以寫出,下面這樣的主程序
看上圖,再上一張定義的函數,我們把它移動到了通用函數庫中
第21行,這是我們新增的代碼,執行完這個代碼,就去除掉了HTML標記,剩下的就應該是純文字內容了。在這里,我們定義了一個函數,名字叫做去除html代碼。
下面我們研究一下,這個函數的內容,如下圖
因為使用了正則表達式,因此,在程序運行前,必須導入模塊re
第3行,導入我們所需要的re模塊,我們想用到正則表達式
第5行,定義函數
第6行,用右尖括號分格隔成列表
第8行,對列表元素進行遍歷
第9行,使用正則挑出有效的內容,其實就是去除以前孤立的右尖括號的內容。
第10行,對有效的內容進行左尖括號分隔
第11行,左尖括號前面的內容就是有效的文字內容
完整的程序如下
下面我們對程序進行下測試,在上一章中,程序運行后得到如下的內容(內容太長,只截取一小部分)
本次程序改造后,運行得到下面的內容
從上面兩個圖片可以看出,我們確實把文字內容提取出來了。
網頁設計和開發中,了解HTML的每個組成部分是至關重要的。其中,<body>標簽承載著網頁的所有可見內容,它是構建高效、互動和吸引人的網站的基礎。本文將深入探討<body>標簽的功能、重要性以及如何最大化其潛力以提升網頁的整體表現和用戶體驗。
在HTML(超文本標記語言)中,<body>標簽定義了網頁的主體部分,這部分是所有可視化內容的容器,包括文本、圖片、視頻、游戲界面等。位于<html>標簽內部,緊隨<head>標簽之后,<body>標簽是實現頁面功能和設計的舞臺。
讓我們通過一個簡單的例子來看看如何在實踐中應用這些技巧。假設我們需要創建一個簡單的個人博客頁面,我們會這樣構建<body>:
<body>
<header>
<h1>歡迎來到我的博客</h1>
<nav>
<ul>
<li><a href="#posts">文章</a></li>
<li><a href="#about">關于我</a></li>
</ul>
</nav>
</header>
<main id="posts">
<article>
<h2>HTML基礎</h2>
<p>HTML是構建網頁的基礎...</p>
</article>
<!-- 更多文章 -->
</main>
<footer>
<p>版權所有 ? 2024</p>
</footer>
</body>
在這個例子中,我們使用了語義化標簽來定義網頁的頭部、主要內容區域和尾部。這不僅使網頁結構清晰,而且有助于SEO和屏幕閱讀器的使用。
HTML標簽相關的字符串格式化
string nl2br ( string $string )
nl2br() 就是將\n 替換成 <br> //javascript對\n才能夠執行換行,對</br>是不能執行換行
htmlspecialchars() 把一些預定義的字符轉換為 HTML 實體。
string htmlspecialchars(string,quotestyle,[character-set])
轉換以下字符及對應的實體
& (和號) 成為 &
" (雙引號) 成為 "
' (單引號) 成為 '
< (小于) 成為 <
> (大于) 成為 >
第二個參數: ENT_COMPAT 只轉換雙引號, 保留單引號, 為默認值 compat: 兼容性
ENT_QUOTES 同時轉換兩種引號 quotes: 引號
ENT_NOQUOTES 不對引號進行轉換
<html>
<body>
<?php
$str="John & \" 'Adams'";
echo htmlspecialchars($str, ENT_COMPAT);
echo "<br />";
echo htmlspecialchars($str, ENT_QUOTES);
echo "<br />";
echo htmlspecialchars($str, ENT_NOQUOTES);
?>
</body>
</html>
輸出結果:John & " 'Adams'
John & " 'Adams'
John & " 'Adams'
htmlentities() 可以將所有的非ASCII碼字符轉換為對應的實體代碼;除字母、數字、\外, 漢字和鍵盤上其他字符都轉換
<?php
$str="A 'quote' \" is <b>bold</b>" ;
echo htmlentities ( $str ); // 輸出后源代碼: A 'quote' is <b>bold</b>
echo htmlentities ( $str , ENT_QUOTES ); // 輸出后源代碼: A 'quote' is <b>bold</b>
?>
返回的結果:A 'quote' "is <b>bold</b>
A 'quote' "is <b>bold</b>
注意: htmlspecialchars()和htmlentities作用直接輸出HTML腳本
htmlspecialchars()和htmlentities()函數對于轉義字符"\"處理,不會轉義實體代碼,要么當轉義字符對待,要么原樣輸出;
PHP中htmlentities和htmlspecialchars的區別
這兩個函數的功能都是轉換字符為HTML字符編碼, 特別是url和代碼字符串。防止字符標記被瀏覽器執行。
使用中文時沒什么區別, 但htmlentities會格式化中文字符使得中文輸入是亂碼。
htmlentities轉換所有的html標記, htmlspecialchars只格式化& ' " < 和 > 這幾個特殊符號
addslashes() 在指定的預定義字符前添加反斜杠。
這些預定義字符是:單引號 (') 雙引號 (") 反斜杠 (\) NULL字符(\x00)
提示:該函數可用于為存儲在數據庫中的字符串以及數據庫查詢語句準備合適的字符串。
注釋:默認情況下,PHP 指令 magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE數據自動運行 addslashes()。
不要對已經被magic_quotes_gpc轉義過的字符串使用 addslashes(),因為這樣會導致雙層轉義。
遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。(如:$c=(!get_magic_quotes_gpc())?addslashes($c):$c;)
在本例中,我們要向字符串中的預定義字符添加反斜杠:
<?php
$str="Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
?>
輸出:
Who's John Adams? This is not safe in a database query.
Who\'s John Adams? This is safe in a database query.
<?php
header("Content-type:text/html; charset=utf-8");
$str="wo are \x0a studying \x00 php";
echo $str;
echo "<br>";
echo addslashes($str);
?>
輸出:
wo are studying php
wo are studying >wo are studying \0 php< php
stripslashes() 刪除反斜線("\")
在提交的表單數據中 ' " \ 等字符前被自動加上一個\ ,這是配置文件php.ini中選項magic_quotes_gpc在起作用,
默認是打開的,如果不處理則將數據保存到數據庫時,有可能會被數據庫誤當成控制符號而引起錯誤。
通常htmlspecialchars()和stripslashes()函數復合的方式,聯合處理表單中的提交的數據htmlspecialchars(stripslashes())
strip_tags()
string strip_tags ( string $str [, string $allowable_tags ] )
剝去 HTML、XML 以及 PHP 的標簽。
<?php
echo strip_tags("Hello <b><i>world!</i></b>","<b>");
?>
輸出結果:Hello world!
實例:
<?php
$str="<b>webserver;</b> & \ 'Linux' & Apache";
echo "$str"; //直接輸出
echo "<br/>";
echo htmlspecialchars($str,ENT_COMPAT); //只轉換雙引號,為默認參數
echo "<br />";
echo htmlspecialchars($str,ENT_NOQUOTES); //不對引號進行轉換
echo "<br />";
echo htmlspecialchars($str,ENT_QUOTES); //同時轉換單引號和雙引號
echo "<br />";
echo htmlentities($str); //將所有的非ASCII碼字符轉換為對應的實體代碼
echo "<br />";
echo addslashes($str); //將" ' \ 字符前添加反斜線
echo "<br />";
echo stripslashes($str); //刪除反斜線
echo "<br />";
echo strip_tags($str); //刪除<html>標記
?>
輸出結果:
webserver; & \ 'Linux' & Apache
*請認真填寫需求信息,我們會在24小時內與您取得聯系。