九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
php編碼

關(guān)鍵字 php 字符串

在Web應(yīng)用中,用戶和系統(tǒng)的交互基本上是用文字來進(jìn)行的,因此系統(tǒng)對(duì)文本信息,即字符串的處理非常重要。文本字符串操作內(nèi)容很多,本節(jié)將一一介紹。

3.1.1 去除空格和其他特殊符號(hào)

有時(shí),需要去掉字符串中的空格或者其他沒有意義的符號(hào)。例如,在一個(gè)電子商務(wù)應(yīng)用中,當(dāng)用戶填寫訂單的內(nèi)容時(shí)(如聯(lián)系地址),可能輸入一些空格、句號(hào)等字符,系統(tǒng)希望在存儲(chǔ)之前把它們?nèi)サ?,只剩下有意義的信息。為了完成類似于上述需求的問題,PHP4及以上版本提供了4個(gè)去除字符串中特殊符號(hào)的函數(shù)。

     string trim(string str [, string charlist]):去除字符串str首尾處空格或其他特殊符號(hào)。

     string ltrim(string str [, string charlist]):去除字符串str首的空格或其他特殊符號(hào)。

     string rtrim(string str [, string charlist]):去除字符串str尾的空格或其他特殊符號(hào)。

     string chop(string str [, string charlist]):功能同rtrim()。

以上函數(shù)的第1個(gè)參數(shù)str為待操作的字符串,第2個(gè)可選參數(shù)charlist指定想要去除的特殊符號(hào),當(dāng)缺省時(shí)默認(rèn)值為去掉下列字符:空格(" ")、制表符(\t)、換行符(\n)、回車符(\r)、空值(\0)。還可以使用“..”通過第2個(gè)參數(shù)指定需要去除一個(gè)范圍內(nèi)的字符,例如“a..d”指去掉ASCII碼值介于a和d之間的字符,即a、b、c、d。

下面以trim()為例說明上述函數(shù)的使用。

    <!--去除字符串中的特殊字符:trim.php-->
    <?php
        $init_str = ",山東省濟(jì)南市經(jīng)十路8號(hào)1. ";    //前后都包含一個(gè)空格
        echo $init_str."#<br>";
        $trimmed_str = trim($init_str);        //"山東省濟(jì)南市經(jīng)十路8號(hào)1."
        echo $trimmed_str."#<br>";
        $trimmed_str = trim($init_str,‘, .‘);//"山東省濟(jì)南市經(jīng)十路8號(hào)1"。注意,第2個(gè)參數(shù)包括3個(gè)字符。
        echo $trimmed_str."#<br>";
        $trimmed_str = trim($init_str,‘, .0..9‘);    //"山東省濟(jì)南市經(jīng)十路8號(hào)"。0..9說明要去掉所有的數(shù)字字符
        echo $trimmed_str."#<br>";
   ?>


第3行定義了一個(gè)字符串變量,在其首部有空格和逗號(hào),其尾有句號(hào)和空格;

第5行使用不帶第2個(gè)參數(shù)的trim()函數(shù)去掉了其中首尾處的空格符號(hào);

第7行使用帶有第2個(gè)參數(shù)的trim()函數(shù)去掉了其首尾處的第2個(gè)參數(shù)中所包含的字符,即去掉了首尾處的空格、逗號(hào)和句號(hào)。

第9行trim()中第2個(gè)參數(shù)中的“0..9”說明將要去掉位于0和9的ASC碼范圍內(nèi)的所有字符。

ltrim()、rtrim()的使用同trim()類似,而chop()實(shí)際上是rtrim()的別名,其功能與rtrim()一樣,不再贅述。

3.1.2 加入和去除反斜杠

在許多應(yīng)用中,例如生成SQL語句時(shí)(SQL語句將在第二部分中介紹),需要在其中加入轉(zhuǎn)義字符‘\’,手工構(gòu)造起來相當(dāng)麻煩。為了解決類似問題,PHP提供了自動(dòng)在字符串中加入或去除轉(zhuǎn)義字符的函數(shù)。

     string addcslashes(string str, string charlist):第1個(gè)參數(shù)str為待操作的原始字符串,第2個(gè)參數(shù)charlist說明需要在原始串的哪些字符前加上字符‘\’。
     string stripcslashes(string str):去掉字符串中的‘\’。

二者的使用參考下面代碼。


    <!--加入轉(zhuǎn)義字符:addcslashes.php-->
    <?php
    $init_str = "select * from Books where name = ‘PHP手冊(cè)‘";
    echo $init_str."#<br>";
    $new_str = addcslashes($init_str,"‘");
    echo $new_str."#<br>";
    $init_str2 = stripcslashes($new_str);
    echo $init_str2."#<br>";
    ?>


代碼在第5行在$init_str中的‘’’前加上了‘\’,又在第9行將其去掉。

3.1.3 生成HTML元素

HTML元素的書寫非常麻煩,下面簡單列出一些常用字符在HTML中的表示方式。

     ‘&‘:‘&‘

     雙引號(hào)‘"’:‘"‘

     單引號(hào)‘‘’:‘‘‘

     ‘<‘ :‘<‘

     ‘>‘ :‘>‘

此處,稱‘&‘等為HTML元素,‘&‘ 等為其顯示字符串。例如,若想在頁面上的顯示 “<a href=‘test‘>鏈接</a>”,HTML應(yīng)寫為“<a href=‘test‘>Test</a>”,否則,將只在頁面上顯示一個(gè)鏈接信息。

PHP提供了下面的函數(shù)來自動(dòng)轉(zhuǎn)化HTML元素。

     string htmlspecialchars(string str [, int quote_style [, string charset]]):把一些常用的HTML元素轉(zhuǎn)換為顯示字符串
     string htmlentities(string str [, int quote_style [, string charset]]):把所有的HTML元素轉(zhuǎn)換為顯示字符串。
     string html_entity_decode(string str [, int quote_style [, string charset]]):把顯示字符串轉(zhuǎn)化為HTML元素。

上面函數(shù)中,參數(shù)str表示原始字符串;可選參數(shù)quote_style確定是否轉(zhuǎn)換雙引號(hào)和單引號(hào),取值范圍為{ ENT_COMPAT , ENT_QUOTES , ENT_NOQUOTES},分別表示只轉(zhuǎn)換雙引號(hào)、全轉(zhuǎn)換、全不轉(zhuǎn)換,缺省時(shí)默認(rèn)值為ENT_COMPAT;第3個(gè)參數(shù)charset指定了轉(zhuǎn)換中所用的字符集。PHP4及以上版本所支持的字符集參考表3.1。
下面的示例中,首先使用htmlentities()函數(shù)得到一個(gè)HTML語句的顯示字符串,然后再用html_entity_decode()函數(shù)重新把顯示字符串轉(zhuǎn)回HTML元素。運(yùn)行結(jié)果如圖3.1所示。


    <!--生成HTML元素:htmlspecialchars.php-->
    <?php
    $orig = "我正在<b><font color=red>學(xué)習(xí)!</font></b> ";
    $a = htmlentities($orig,ENT_COMPAT,"GB2312");
    $b = html_entity_decode($a);
    echo $a; // I‘ll "walk" the <b>dog</b> now
    echo $b; // I‘ll "walk" the <b>dog</b> now
    ?>

除上面所提到的3個(gè)函數(shù)之外,用于HTML元素操作的函數(shù)還包括nl2br()、get_html_translation_table()等,功能與上述函數(shù)類似,本書不再一一詳述。

3.1.4 分解字符串

分解字符串是指把一個(gè)字符串通過特殊的符號(hào)分解為許多子串。例如,時(shí)間字符串“2005-01-01 12:59:59”可以利用符號(hào)“-”、空格和“:”分解為年月日時(shí)分秒具體的值。PHP提供了下列函數(shù)完成類似功能:

     array split(string pattern, string str [, int limit])

其中,參數(shù)pattern指定了作為分解標(biāo)識(shí)的符號(hào);str為待操作的原始串;第3個(gè)可選參數(shù)limit為返回子串個(gè)數(shù)的最大值,缺省時(shí)為全部返回。函數(shù)的返回值為數(shù)組,將在3.2節(jié)對(duì)其進(jìn)行介紹。此處,可以暫時(shí)把函數(shù)返回值理解為多個(gè)子串。

下面的示例可以把字符串“2005-01-01 12:59:59”分解為年月日時(shí)分秒子串。


    <!--分解字符串:split.php-->
    <?php   
    $date = "2005-01-01 12:59:59";
    list ($year,$month,$day,$hour,$minite,$second) = split (‘[- :]‘,$date);
    echo"{$year}年{$month}月{$day}日{(diào)$hour}時(shí){$minite}分{$second}秒<br>\n";
    ?>


上例將輸出“2005年01月01日12時(shí)59分59秒”。第4行使用split函數(shù)把時(shí)間分解,分解的標(biāo)識(shí)符包括“-”、空格和“:”,在第5行將其輸出。

除split之外,功能相似的函數(shù)還包括preg_split(),explode(),implode(),chunk_split()和 wordwrap()等。

3.1.5 格式化字符串

格式化字符串用于按一定的格式輸出含有許多變量的文本,是最常用的一種操作。PHP的fprintf()函數(shù)完成這個(gè)功能,習(xí)慣使用C語言的讀者肯定對(duì)其感到熟悉。函數(shù)原型為:

     string sprintf(string format, mixed [args]...)

參數(shù)format是轉(zhuǎn)換后的格式,各個(gè)變量都以“%”后的字符規(guī)定其格式,后面的多個(gè)參數(shù)以此對(duì)應(yīng)于format中的“%”處。下面示例格式化浮點(diǎn)數(shù)的小數(shù)部分。


   <!--格式化字符串:sprintf.php-->
    <?
    $name="張三";
    $money1 = 68.75;
    $money2 = 54.35;
    $money = $money1 + $money2;
    // 此時(shí)變數(shù) $money 值為 "123.1";
    $formatted = sprintf ("%s有¥%01.2f。",$name, $money);
    echo $formatted;    //張三有¥123.10。
   ?>


第6行通過算術(shù)運(yùn)算,得到$money的值為123.1;而在第8行通過sprintf中的%01.2定義其格式為顯示小數(shù)點(diǎn)后兩位。

除sprintf()之外,常用于格式化數(shù)據(jù)的函數(shù)還有printf()、sprintf()、sscanf()、fscanf()、vsprintf()和number_format()等。

3.1.6 獲取和替換子串

獲取子串是指從一個(gè)串中獲取其中連續(xù)的一部分。例如,從串“2005-01-01 12:59:59”中取得時(shí)間串。PHP提供了兩個(gè)函數(shù)來獲取或替換串的某一部分:

     string substr(string str, int start [, int length]):獲取子串,第1個(gè)參數(shù)str是待操作的串,第2個(gè)參數(shù)start表明子串在總串中的起始位置,第3個(gè)可選參數(shù)指定所獲取的子串長度,如果為正數(shù)則表明子串從start向右取,否則向左??;缺省時(shí)默認(rèn)值為從start取到串尾。

     string substr_replace(string str, string replacement, int start [, int length]):在獲取的基礎(chǔ)上進(jìn)行替換,即將獲取出的子串替換為其第2個(gè)參數(shù)replacement。

下面的示例中,首先利用substr()獲取串“2005-01-01 12:59:59”的時(shí)間信息,然后使用substr_replace()函數(shù)將年份信息改為“2006”:


    <!--獲取子串:substr.php-->
    <?
        $date = "2005-01-01 12:59:59";
        $time=substr($date,11,8); //子串"12:59:59"的起始位置為11,長度為8
        echo "time:$time<br>";
        $new_date=substr_replace($date,"2006",0,4);
        echo "new date:$new_date";
    ?>

3.1.7 定位字符

定位字符是指尋找某個(gè)字符在串中最先出現(xiàn)的位置,函數(shù)strpos()可以完成此功能。

     int strpos(string str, char needle):第1個(gè)參數(shù)str為待處理的串,第2個(gè)參數(shù)needle為待尋找的字符。下面這個(gè)示例,對(duì)一個(gè)電子郵件地址進(jìn)行處理,首先使用strpos()尋找字符“@”,然后結(jié)合獲取子串函數(shù)strstr()獲取用戶名。


    <!--字符定位:strpos.php-->
    <?
        $email = "zhangsan@php.net";
        $i=strpos($email,‘@‘);
        $name=substr($email,0,$i);
        echo $name;
    ?>


示例第4行使用strpos()獲取了字符’@’的位置,然后在第5行使用substr()得到用戶名子串信息。

3.1.8 求串長度

求串長度也是常用的操作,所使用的函數(shù)為strlen():int strlen ( string str)。

這個(gè)函數(shù)很簡單,返回字符串str的長度。仍以上一小節(jié)的例子為例,從電子郵件串中替換用戶的名字,即改為lisi@php.net。


    <!--字符定位:strpos.php-->
    <?
        $email = "zhangsan@php.net";
        $i=strpos($email,‘@‘);
        $name=substr($email,0,$i);
        $email=substr_replace($email,"lisi",0,strlen($name));
        echo $email;
    ?>


3.1.9 獲取ASCII編碼

把字符轉(zhuǎn)化為ASCII編碼在實(shí)際應(yīng)用中有時(shí)是很有用的,例如,字符串在數(shù)據(jù)庫中以二進(jìn)制形式存放,而需要數(shù)據(jù)獲取函數(shù)返回ASCII碼串時(shí),就需要把其轉(zhuǎn)化為字符串顯示。PHP提供的轉(zhuǎn)換ASCII碼和字符的函數(shù)有以下兩種。

     string chr(int ascii):把ASCII碼轉(zhuǎn)化為字符串。
     int ord(string string):把字符串轉(zhuǎn)化為ASCII碼。

二者的使用參考下例。


    <!--ASCII轉(zhuǎn)換:chr.php-->
    <?
        $letter = chr(65);        //A
        $ascii=ord(‘A‘);         //65
        echo $letter;
        echo    $ascii;
    ?>


3.1.10 比較字符串

字符串的比較規(guī)則是按照字典排序方法,排在前面的小于后面的。如同在一本英語詞典中,后面的詞條大于前面的詞條。PHP實(shí)現(xiàn)字符串比較的函數(shù)如下。

     int strncmp(string str1, string str2[, int len]):函數(shù)的前兩個(gè)參數(shù)為待比較的兩個(gè)字符串,第3個(gè)可選參數(shù)可指定想比較二者從頭開始的多少個(gè)字符。如果str1>str2,函數(shù)返回正數(shù);str1=str2時(shí)返回0;str1<str2時(shí)返回負(fù)數(shù)。

    <!--ASCII轉(zhuǎn)換:chr.php-->
    <?
        $str1="China";
        $str2="Beijing";
        $i=strcmp($str1,$str2);
        echo $i;        //1
    ?>


除strcmp()之外,具有字符串比較或排序功能的函數(shù)還strcasecmp(),strncmp(),strncasecmp(),strnatcasecmp(),strstr(),natsort()和natcasesort()。

3.1.11 大小寫轉(zhuǎn)換

比較兩個(gè)字符串是否在不區(qū)分大小寫時(shí)相等,僅僅使用上一小節(jié)的strcmp()函數(shù)就不行了,這時(shí)可將兩個(gè)字符串同時(shí)轉(zhuǎn)換為大寫或小寫,然后再進(jìn)行比較即可。例如,在判斷網(wǎng)站登錄的用戶名和密碼(不區(qū)分大小寫時(shí))時(shí),常需要這樣。PHP實(shí)現(xiàn)字符串大小寫轉(zhuǎn)換的函數(shù)如下。

     string strtolower(string str):將str轉(zhuǎn)換為小寫形式。
     string strtoupper(string string):將str轉(zhuǎn)換為大寫形式。
     string ucfirst(string str):將str的第一個(gè)字符轉(zhuǎn)換為大寫形式。
     string ucwords(string str):將str中每一個(gè)單詞的首字母轉(zhuǎn)換為大寫形式。

參考下例。

    <!--大小寫轉(zhuǎn)換:Upper_Lower.php-->
    <?
        $str1="shandong province";
        $str2="China";   
        $str1=ucwords($str1);
        echo $str1;          //Shangdong Province   
        $str1=strtoupper($str1);
        echo $str1;          //SHANGDONG PROVINCE   
        $str2=strtolower($str2);
        echo $str2;          //china
    ?>
3.1.12 小結(jié)

字符串PHP中應(yīng)用最為廣泛的數(shù)據(jù)類型,其操作也種類繁多。PHP4及以上版本提供了五十多個(gè)內(nèi)置的字符串操作函數(shù),熟練地使用這些函數(shù),是使用PHP的重要內(nèi)容。本節(jié)介紹了其中最為常用的大部分函數(shù),其余未能涉及的部分,請(qǐng)讀者在開發(fā)或?qū)W習(xí)過程中參考PHP函數(shù)手冊(cè)。
1
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
php 字符串函數(shù)
php 字符串截取函數(shù)
PHP addslashes() 函數(shù)
php 去掉字符串的最后一個(gè)字符
PHP nl2br函數(shù) 將換行字符轉(zhuǎn)成 <br>
PHP實(shí)現(xiàn)中文漢字與16進(jìn)制編碼轉(zhuǎn)換
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服