国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - PHP教程 - PHP中常用的字符串格式化函數(shù)總結(jié)

PHP中常用的字符串格式化函數(shù)總結(jié)

2020-08-13 13:49服務(wù)器之家 PHP教程

這篇文章主要介紹了PHP中常用的字符串格式化函數(shù)總結(jié),本文講解的函數(shù)是WEB中經(jīng)常用到的,例如取出空格和字符串填補(bǔ)函數(shù)、字符串大小寫(xiě)的轉(zhuǎn)換、和HTML標(biāo)簽相關(guān)的字符串格式化等,需要的朋友可以參考下

字符串的格式化就是將字符串處理為某種特定的格式。通常用戶從表單中提交給服務(wù)器的數(shù)據(jù)都是字符串的形式,為了達(dá)到期望的輸出效果,就需要按照一定的格式處理這些字符串后再去使用。經(jīng)常見(jiàn)到的字符串格式化函數(shù)如下圖所示:

PHP中常用的字符串格式化函數(shù)總結(jié)

注意:在PHP中提供的字符串函數(shù)處理的字符串,大部分都不是在原字符串上修改,而是返回一個(gè)格式化后的新字符串。

一、取出空格和字符串填補(bǔ)函數(shù)

空格也是一個(gè)有效的字符,在字符串中也會(huì)占據(jù)一個(gè)位置。用戶在表單輸入數(shù)據(jù)時(shí),經(jīng)常在無(wú)意中會(huì)多輸入一些無(wú)意義的空格。因此PHP腳本在接收到通過(guò)表單處理過(guò)來(lái)的數(shù)據(jù)時(shí),首先處理的就是字符串中多余的空格,或者其他一些沒(méi)有意義的符號(hào)。在PHP中可以通過(guò)ltrim()、rtrim()和trim()函數(shù)來(lái)完成這項(xiàng)工作。這三個(gè)函數(shù)的語(yǔ)法格式相同,但作用有所不同。他們的語(yǔ)法格式如下所示:

復(fù)制代碼 代碼如下:

string ltrim(string str[,string charlist])                //從字符串左側(cè)刪除空格或其他預(yù)定義字符
string rtrim(string str[,string charlist])              //從字符串右側(cè)刪除空白字符或其他預(yù)定義字符
string trim(string str[,string charlist])              //從字符串的兩端刪除空白字符或其他預(yù)定義字符


這三個(gè)函數(shù)分別用于從字符串的左、右和兩端刪除空白字符或其他預(yù)定義字符。處理后的結(jié)果都會(huì)以新字符串的形式返回,不會(huì)在原字符串上修改。其中第一個(gè)參數(shù)str是待處理的字符串,為必選項(xiàng)。第二個(gè)參數(shù)charlist是過(guò)濾字符串,用于指定希望去除的特殊符號(hào),該參數(shù)為可選。如果不指定過(guò)濾字符串,默認(rèn)情況下會(huì)去掉下列字符。

 

★”":空格
★”0\”:NULL
★”\t”:制表符
★”\n”:新行
★”\r”:回車

此外還可以使用“..”符號(hào)指定需要去除的一個(gè)范圍,例如“0..9”或“a..z”表示去掉ASCII碼值中的數(shù)字和小字母。它們的使用代碼如下所示:

復(fù)制代碼 代碼如下:

<?php
$str = "123 This is a test ..."; //聲明一個(gè)測(cè)試字符串,左側(cè)為數(shù)字開(kāi)頭,右側(cè)為省略號(hào)
echo ltrim($str,"0..9"); //過(guò)濾掉字符串左側(cè)的數(shù)字,輸出This is a test ...
echo rtrim($str,".") //過(guò)濾掉字符串右側(cè)的所有“.”,輸出:123 This is a test
echo trim($str,"0..9 A..Z ."); //過(guò)濾掉字符串兩端的數(shù)字和大寫(xiě)字母還有“.”,輸出:his is a test
?>

 

不僅可以按需求過(guò)濾掉字符串中的內(nèi)容,還可以使用str_pad()函數(shù)按需求對(duì)字符串進(jìn)行填補(bǔ)。可以用于對(duì)一些敏感信息的保護(hù),例如數(shù)據(jù)的對(duì)并排列等。其函數(shù)的原型如下所示:

復(fù)制代碼 代碼如下:

string str_pad(string input,int pad_length[,string pad_string[,int pad_type]])


該函數(shù)有4個(gè)參數(shù),第一個(gè)參數(shù)指明要處理的字符串。第二個(gè)參數(shù)給定處理后字符串的長(zhǎng)度,如果該值小于原始字符串的長(zhǎng)度,則不進(jìn)行任何操作。第三個(gè)參數(shù)指定填補(bǔ)時(shí)所用的字符串,它為可選參數(shù),如果沒(méi)有指定則默認(rèn)使用空格填補(bǔ)。最后一個(gè)參數(shù)指定填補(bǔ)的方向,它有三個(gè)可選值:STR_PAD_BOTH、STR_PAD_LEFT和STR_PAD_RIGHT,分別代表在字符串兩端、左和右進(jìn)行填補(bǔ)。也是一個(gè)可選參數(shù),如果沒(méi)有指定,則默認(rèn)值是STR_PAD_RIGHT。函數(shù)str_pad()的使用代碼如下所示:

復(fù)制代碼 代碼如下:

<?php
$str = "LAMP";
echo str_pad($str,10);         //指定長(zhǎng)度為10,默認(rèn)使用空格在右邊填補(bǔ)“LAMP”
echo str_pad($str,10,"-="STR_PAD_LEFT);     //指定長(zhǎng)度為10,指定在左邊填補(bǔ)“-=-=-=LAMP”
echo str_pad($str,10,"_"STR_PAD_BOTH);     //指定長(zhǎng)度為10,指定在左邊填補(bǔ)“___LAMP___”
?>

 

二、字符串大小寫(xiě)的轉(zhuǎn)換

在PHP中提供了4個(gè)字符串大小寫(xiě)的轉(zhuǎn)換函數(shù),它們都只有一個(gè)可選參數(shù),即傳入要進(jìn)行轉(zhuǎn)換的字符串。可以直接使用這些函數(shù)完成大小寫(xiě)轉(zhuǎn)換的操作。函數(shù)strtoupper()用于將給定的字符串全部轉(zhuǎn)換為大寫(xiě)字母;函數(shù)strtolower()用于將給定的字符串全部轉(zhuǎn)換為小寫(xiě)字母;函數(shù)ucfirst()用于將給定的字符串中的首字母轉(zhuǎn)換為大寫(xiě),其余字符不變;函數(shù)ucwords()用于將給定的字符串中全部以空格分割的單詞首字母轉(zhuǎn)換為大寫(xiě)。下面的程序是這些函數(shù)的使用代碼,如下所示:

復(fù)制代碼 代碼如下:

<?php
$lamp = "lamp is composed of Linux 、Apache、MySQL and PHP";
echo strtolower($lamp); //輸出:lamp is composed of linux、apache、mysql and php
echo strtoupper($lamp); //輸出:LAMP IS CONPOSED OF LINUX、APACHE、MYSQL AND PHP
echo ucfirst($lamp); //輸出:Lamp is composed of Linux 、Apache、MySQL and PHP
echo ucwords($lamp); //輸出: Lamp Is Composed Of Linux 、Apache、MySQL And PHP
?>


這些函數(shù)只是按照他們說(shuō)明描述的方式工作,要想確保一個(gè)字符串的首字母是大寫(xiě)字母,而其余的都是小寫(xiě)字母,就需要使用符合的方式。如下所示:

復(fù)制代碼 代碼如下:

<?php
$lamp = "lamp is composed of Linux 、Apache、MySQL and PHP";
echo ucfirst(strtolower($lamp)); //輸出:Lamp is composed of linux、apache、mysql and php
?>

 

三、和HTML標(biāo)簽相關(guān)的字符串格式化

HTML的輸入表單和URL上附加資源是用戶將數(shù)據(jù)提交給服務(wù)器的途徑,如果不能很好地處理,就有可能成為黑客攻擊服務(wù)器的入口。例如,用戶在發(fā)布文章時(shí),在文章中如果包含一些HTML格式標(biāo)記或JavaScript的頁(yè)面轉(zhuǎn)向等代碼了,直接輸出顯示則一定會(huì)使用頁(yè)面的布局發(fā)生改變。因?yàn)檫@些代碼被發(fā)送到瀏覽器中,瀏覽器會(huì)按有效的代碼去解釋。所以在PHP腳本中,對(duì)用戶提交的數(shù)據(jù)內(nèi)容一定要先處理。在PHP中為我們提供了非常全面的HTML相關(guān)的字符串格式化函數(shù),可以有效地控制HTML文本的輸出。

①函數(shù)nl2br()

在瀏覽器中輸出的字符串“<br>”標(biāo)記換行,而很多人習(xí)慣使用“\n”作為換行符號(hào),但瀏覽器中不識(shí)別這個(gè)字符串的換行符。即使有多行文本,在瀏覽器中顯示時(shí)也只有這一行。nl2br()函數(shù)就是在字符串中的每個(gè)新行“\n”之前插入HTML換行符“<br/>”。該函數(shù)的使用如下所示:

復(fù)制代碼 代碼如下:

<?php
echo nl2br("One line.\nAnother line."); //在“\n”前加上“<br/>”標(biāo)記
/*輸出以下兩行結(jié)果
One line.<br/>
Another line.
*/
?>

 

②函數(shù)htmlspecialchars()

如果不希望瀏覽器直接解析HTML標(biāo)記,就需要將HTML標(biāo)記中的特殊字符轉(zhuǎn)換成HTML實(shí)體。例如,將“<”轉(zhuǎn)換為“&lt;”,將“>”轉(zhuǎn)換為“&gt;”。這樣HTML標(biāo)記瀏覽器就不會(huì)去解析,而是將HTML文本在瀏覽器中原樣輸出。PHP中提供的htmlspecialchars()函數(shù)就可以將一些預(yù)定義的字符串轉(zhuǎn)換為HTML實(shí)體。此函數(shù)用在預(yù)防使用者提供的文字中包含了HTML的標(biāo)記,像是布告欄或是訪客留言板這方面的應(yīng)用。以下是該函數(shù)可以轉(zhuǎn)換的字符:

★“&”(和號(hào))轉(zhuǎn)換為“&amp;”。
★“””(雙引號(hào))轉(zhuǎn)換為“&quot;”。
★“'”(單引號(hào))轉(zhuǎn)換為“&#039;”。
★“<”(小于)轉(zhuǎn)換為“&lt;”。
★“>”(大于)轉(zhuǎn)換為“&gt;”。

該函數(shù)的原型如下:

復(fù)制代碼 代碼如下:

string htmlspecialchars(string string [,int quote_style[,string charset]])


該函數(shù)中第一個(gè)參數(shù)是帶有HTML標(biāo)記待處理的字符串。第二個(gè)參數(shù)用來(lái)決定引號(hào)的轉(zhuǎn)換方式。默認(rèn)值為ENT_COMPAT將只轉(zhuǎn)換雙引號(hào),而保留單引號(hào);ENT_QUOTES將同時(shí)轉(zhuǎn)換這兩種引號(hào);而ENT_NOQUOTES將不對(duì)引號(hào)進(jìn)行轉(zhuǎn)換。第三個(gè)參數(shù)用于指定所處理字符串的字符集,默認(rèn)的字符集是“ISO88511-1”。

 

 

復(fù)制代碼 代碼如下:

<html>
<body>
<?php
$str = "<B>WebServer:</B> & 'Linux' & 'Apache'"; //將有HTML標(biāo)記和單引號(hào)的字符串
echo htmlspecialchars($str,ENT_COMPAT); //轉(zhuǎn)換HTML標(biāo)記和轉(zhuǎn)換雙引號(hào)
echo "<br>\n";
echo htmlspecialchars($str,ENT_QUOTES); //轉(zhuǎn)換HTML標(biāo)記和轉(zhuǎn)換兩種引號(hào)
echo "<br>\n";
echo htmlspecialchars($str,ENT_NOQUOTES); //轉(zhuǎn)換HTML標(biāo)記和不對(duì)引號(hào)轉(zhuǎn)換
echo "<br>\n";
?>
</body>
</html>

 

在瀏覽器中的輸出結(jié)果

復(fù)制代碼 代碼如下:

<B>WebServer:</B> & ‘Linux' & ‘Apache'
<B>WebServer:</B> & ‘Linux' & ‘Apache'
<B>WebServer:</B> & ‘Linux' & ‘Apache'


如果在瀏覽器中查看源代碼,會(huì)看到如下結(jié)果:

復(fù)制代碼 代碼如下:

<html>
<body>
&lt;B&gt;WebServer:&lt;/B&gt;&amp;'Linux'&amp;'Apache'<br> //沒(méi)有轉(zhuǎn)換單引號(hào)
&lt;B&gt;WebServer:&lt;/B&gt;&amp;&#039;Linux&#039;&amp;&#039;Apache&#039;<br>
&lt;B&gt;WebServer:&lt;/B&gt;&amp;'Linux'&amp;'Apache' //沒(méi)有轉(zhuǎn)換單引號(hào)
</body>
</html>

 

在PHP中還提供了htmlentities()函數(shù),可以將所有的非ASCII碼字符轉(zhuǎn)換為對(duì)應(yīng)的實(shí)體代碼。該函數(shù)與htmlspecialchars()函數(shù)的使用語(yǔ)法格式一致,該函數(shù)可以轉(zhuǎn)義更多的HTML字符。下面的代碼為htmlentities()函數(shù)的使用范例:

復(fù)制代碼 代碼如下:

<?php
$str = "一個(gè)'quote'是<b>bold</b>";
//輸出&0qrave;&raquo;&cedil;&ouml; 'quote' &Ecirc;&Ccedil; &lt;b&gt; &lt:b&gt;bold&lt;/b&gt;
echo htmlentities($str);
//輸出:一個(gè)&#039;quote&#039; 是 &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str,ENT_QUOTES,gb2312);
?>

 

在處理表單中提交的數(shù)據(jù)時(shí),不僅要通過(guò)前面介紹的函數(shù)將HTML的標(biāo)記符號(hào)和一些特殊字符轉(zhuǎn)換為HTML實(shí)體,還需要對(duì)引號(hào)進(jìn)行處理。因?yàn)楸惶峤坏谋韱螖?shù)據(jù)中的“'”、“””和“\”等字符前將自動(dòng)加上一個(gè)斜線“\”。這是由于PHP配置文件php.ini中的選項(xiàng)magic_quotes_gpc在起作用,默認(rèn)是打開(kāi)的,如果不關(guān)閉它則要使用函數(shù)stripslashes()刪除反斜線。如果不處理,將數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中時(shí),有可能會(huì)被數(shù)據(jù)庫(kù)誤當(dāng)成控制符號(hào)而引起錯(cuò)誤。函數(shù)stripslashes()只有一個(gè)被處理字符串作為參數(shù),返回處理后的字符串。通常使用htmlspecialchars()函數(shù)與stripslashes()函數(shù)復(fù)合的方式,聯(lián)合處理表單中提交的數(shù)據(jù)。

函數(shù)stripslashes()的功能是去掉反斜線“\”,如果有連續(xù)兩個(gè)反斜線,則只去掉一個(gè)。與之對(duì)應(yīng)的是另一個(gè)函數(shù)addslashes(),正如函數(shù)名所暗示的,它將在“'”、“””、“\”和NULL字符等前增加必要的反斜線。

函數(shù)htmlspecialchars()是將函數(shù)HTML中的標(biāo)記符號(hào)轉(zhuǎn)換為對(duì)應(yīng)的HTML實(shí)體,有時(shí)直接刪除用戶輸入的HTML標(biāo)簽,也是非常有必要的。PHP中提供的strip_tags()函數(shù)默認(rèn)就可以刪除字符串中所有的HTML標(biāo)簽,也可以有選擇性地刪除一些HTML標(biāo)記。如布告欄或是訪客留言板,有這方面的應(yīng)用是相當(dāng)必要的。例如用戶在論壇中發(fā)布文章時(shí),可以預(yù)留一些可以改變字體大小、顏色、粗體和斜體等的HTML標(biāo)記,而刪除一些對(duì)頁(yè)面布局有影響的HTML標(biāo)記。函數(shù)strip_tags()的原型如下所示:

復(fù)制代碼 代碼如下:

string strip_tags(string str[,string allowable_tags]); //刪除HTML的標(biāo)簽函數(shù)


該函數(shù)有兩個(gè)參數(shù),第一個(gè)參數(shù)提供了要處理的字符串,第二個(gè)參數(shù)是一個(gè)可選的HTML標(biāo)簽列表,放入該列表中的HTML標(biāo)簽將被保留,其他的則全部被刪除。默認(rèn)將所有HTML標(biāo)簽都刪除。下面的程序?yàn)樵摵瘮?shù)的使用范圍,如下所示:

復(fù)制代碼 代碼如下:

<?php
$str = "<font color='red' size=7>Linux</font> <i>Apache</i> <u>Mysql</u> <b>PHP</b>";
echo strip_tags($str); //刪除了全部HTML標(biāo)簽,輸出:Linux Apache Mysql PHP
echo strip_tags($str,"<font>"); //輸出<font color='red' size=7>Linux</font>Apache Mysql PHP
echo strip_tags($str,"<b><u><i>"); //輸出Linux <i>Apache</i> <u>Mysql</u> <b>PHP</b>
?>

 

四、其他字符串格式化函數(shù)

字符串的格式化處理函數(shù)還有很多,只要是想得到所需要格式化的字符串,都可以調(diào)用PHP中提供的系統(tǒng)函數(shù)處理,很少需要自己定義字符串格式化函數(shù)。

①函數(shù)strrev()

該函數(shù)的作用是將輸入的字符串反轉(zhuǎn),只提供一個(gè)要處理的字符串作為參數(shù),返回翻轉(zhuǎn)后的字符串。如下所示:

復(fù)制代碼 代碼如下:

<?php
echo strrev("http://www.lampbrother.net"); //反轉(zhuǎn)后輸出:ten.rehtorbpmal.www//:ptth
?>

 

②函數(shù)number_format()

number_format()函數(shù)通過(guò)千位分組來(lái)格式化數(shù)字。該函數(shù)如下所示:

復(fù)制代碼 代碼如下:

string number_format(float number[,int decimals[,string dec_point,string thousands_sep]])

 

 

復(fù)制代碼 代碼如下:

<?php
$number = 123456789;
echo number_format($number);      //輸出:123,456,789千位分隔的字符串
echo number_format($number,2);       //輸出:123,456,789.00小數(shù)點(diǎn)后保留兩位小數(shù)
echo number_format($number,2,",",".");       //輸出123.456.789,00千位使用(.)分隔了,并保留兩位小數(shù)
?>

 

③函數(shù)md5()

隨著互聯(lián)網(wǎng)的普及,黑客攻擊已成為網(wǎng)絡(luò)管理者的心病。有統(tǒng)計(jì)數(shù)據(jù)表明70%的攻擊來(lái)自內(nèi)部,因此必須采取相應(yīng)的防范措施來(lái)扼制系統(tǒng)內(nèi)部的攻擊。防止內(nèi)部攻擊的重要性還在于內(nèi)部人員對(duì)數(shù)據(jù)的存儲(chǔ)位置、信息重要性非常了解,這使得內(nèi)部攻擊更容易奏效。攻擊者盜用合法用戶的身份信息,以仿冒的身份與他人進(jìn)行通信。所以在用戶注冊(cè)時(shí)應(yīng)該先將密碼加密后再添加到數(shù)據(jù)庫(kù)中,這樣就可以防止內(nèi)部攻擊者直接查詢數(shù)據(jù)庫(kù)中的授權(quán)表,盜用合法用戶的身份信息。

md5()函數(shù)的作用就是將一個(gè)字符串進(jìn)行MD5算法加密,默認(rèn)返回一個(gè)32位的十六進(jìn)制字符串。

 

復(fù)制代碼 代碼如下:

<?php
$password = "lampbrother";
echo md5($password)."<br>";
 
//將輸入的密碼和數(shù)據(jù)庫(kù)保存的匹配
if(md5($password) == '5f1ba7d4b4bf96fb8e7ae52fc6297aee'){
echo "密碼一致,登錄成功";
}
?>

 

在PHP中提供了一個(gè)對(duì)文件進(jìn)行MD5加密的函數(shù)md5_file(),使用的方式和md5()函數(shù)相似。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 国产精品18久久久 | 欧美日韩第一区 | 日韩精品一区二区在线观看 | 91se在线 | 欧美在线观看www | 免费毛片在线 | 精品二区| 日韩亚洲视频 | 天天色视频 | 中文字幕在线一区二区三区 | 成年黄色在线观看 | 自拍偷拍av| 久久99精品国产麻豆婷婷洗澡 | 久久综合久色欧美综合狠狠 | 亚洲成人精品一区 | 欧美日韩一级电影 | 久久久久久久国产精品 | 亚洲国产精品一区二区三区 | 国产精品成人国产乱一区 | 欧美怡红院视频一区二区三区 | 国产精品久久久久久中文字 | 亚洲精品二区三区 | 亚洲精品久久久久一区二区三区 | 色综合色综合网色综合 | 精品一区电影 | 亚洲福利一区 | 成人av网站在线观看 | 国产成人在线视频 | 久久综合图片 | 欧美日韩精品在线观看 | 免费看黄在线网站 | 亚洲精品成人 | 免费看毛片的网站 | 欧美日韩亚洲一区二区三区 | 亚洲视频在线观看 | 国产一区二区三区免费视频 | 亚洲色图在线播放 | av天天干 | 丁香伊人 | 午夜视频在线观看网站 | 免费a视频 |