日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > php字符串與字符串操作教程詳解

php字符串與字符串操作教程詳解

來源:程序員人生   發(fā)布時間:2014-02-09 11:26:17 閱讀次數(shù):3367次

php字符串是php中一種數(shù)據(jù)類型了,字符串在程序開發(fā)中占著很重的地位,下面我來給php入門者介紹php字符串的一些基于知識與使用說明吧。

輸出字符串

在PHP中,有四種方法輸出字符串,echo結(jié)構(gòu)可以一次輸出多個值;print()只可以輸出一個值;printf()可以格式化輸出;print_r()可以輸出數(shù)組,對調(diào)試很有好處,下面一一進行介紹。

1.echo

echo 是PHP的一個關(guān)鍵字,它沒有返回值,在寫法上,它可以省略小括號,實例代碼如下:

  1. echo 'Test String'
  2. echo('Test String'); 

2.print

print 也是PHP的一個關(guān)鍵字,它有返回值,一般返回true,返回false的情況應(yīng)該沒有,在寫法上,它和echo一樣,可以省略小括號,如下代碼:

  1. print 'Test String'
  2. print('Test String');  

3.printf

printf可以像C語言的printf一樣,格式化輸出一個字符串,它的格式和C語言差不多,都是以%開頭,其說明符定義如下。

b   參數(shù)為整數(shù),顯示其二進制

c   參數(shù)為整數(shù),顯示對應(yīng)ASCII字符

d   參數(shù)為整數(shù),顯示其十進制

f   參數(shù)為雙精度,顯示為浮點數(shù)

e   參數(shù)為雙精度,顯示為科學計數(shù)型

g   參數(shù)為雙精度,顯示為浮點數(shù)或科學計數(shù)型

o   參數(shù)為整數(shù),顯示其八進制

s   參數(shù)為字符串,顯示為字符串

u   參數(shù)為無符號整數(shù),顯示其十進制

x/X 參數(shù)為整數(shù),顯示其十六進制(分別為大小寫顯示)

%   輸出% 

要說明的是:

f,e默認小數(shù)點后六位,g在超過六位(加小數(shù)點)時,會四舍五入,如果四舍五入之后的值小于1000000會直接輸出,大于的1000000的話會顯示成科學計數(shù)型,f在值大于1.2e23輸出的結(jié)果是不對的。

以上除%以外,其它的都可以指定輸出總位數(shù)(小數(shù)點、E都算一位),并可以指定0或空格為補位符,還可以指定補位在左還是在右。

f,e可以指定小數(shù)點后位數(shù)。

如 %5d 表示輸出總位數(shù)為5,不足左補空格; %05d 表示輸出總位數(shù)為5,不足左補0; %05.1f 表示輸出總位數(shù)為5,不足左補0,小數(shù)點后1位; %-05.1f 表示輸出總位數(shù)為5,不足右補0,小數(shù)點后1位;

示例代碼如下:

  1. printf("%7.2f", 1.2);       // " 1.20" 
  2. printf("%-07.2f", 1.2);     // "1.20000"  

4.sprintf

sprintf和格式轉(zhuǎn)換和printf一樣,兩者區(qū)別在于printf直接輸出,而sprintf返回一個格式化后的字符串。

5.print_r和var_dump

print_r和var_dump都能輸出數(shù)組和對象,但print_r對布爾型的輸出不太明顯;var_dump輸出比較詳細,一般調(diào)試時用得多,如下代碼:

  1. $v = new test(); 
  2. print_r($v); 
  3. var_dump($v); 
  4. class test { 
  5.     public $num = 1; 
  6.     public $str = "222"
  7.     public $bln = true; 
  8.     function test() { 
  9.         global $num
  10.     } 
  11. }  
  12. /* 
  13. 結(jié)果為: 
  14. test Object 
  15. ( 
  16.     [num] => 1 
  17.     [str] => 222 
  18.     [bool] => 1 
  19. ) 
  20. object(test)#1 (3) { 
  21.   ["num"]=> 
  22.   int(1) 
  23.   ["str"]=> 
  24.   string(3) "222" 
  25.   ["bool"]=> 
  26.   bool(true) 
  27. } 
  28. */ 

字符串比較和查找

1.字符串比較

在PHP中,可以用==(雙等號)或者 ===(三等號)來比較字符串,兩者的區(qū)別是雙等號不比較類型,三等號會比較類型,它不轉(zhuǎn)換類型;用雙等號進行比較時,如果等號左右兩邊有數(shù)字類型的值,剛會把另一個值轉(zhuǎn)化為數(shù)字,然后進行比較,這樣的話,如果是純字符串或者NULL時,會轉(zhuǎn)化為0進行比較,同樣,大小于號也和等號一樣,比較時可能出現(xiàn)不正確的結(jié)果。

所以,比較字符串可以用PHP的自帶函數(shù)strcmp和strcasecmp,其中strcasecmp是strcmp的變種,它會先把字符串轉(zhuǎn)化為小寫再進行比較,如下代碼:

  1. var_dump(0 == 'Test'); 
  2. var_dump(0 == ''); 
  3. var_dump(5 > 'T'); 
  4. var_dump(strcmp(5, 'T')); 
  5. /* 
  6. 結(jié)果為(第1~3結(jié)果是不對的,只有第4個是對的): 
  7. bool(true) 
  8. bool(true) 
  9. bool(true) 
  10. int(-1)  
  11. */ 

2.字符串處理

(1).子串,代碼如下:

$sub = substr(string, start[, length]);

(2).子串替換,代碼如下:

$newstring = substr_replace(string, new, start[, length]); 

用這個函數(shù)可以實現(xiàn)字符串的插入,刪除操作,這個函數(shù)的start和length可以為負數(shù),分別表示從后開始計算以及保留最后幾位不替換。

(3).字符串反序,代碼如下:

$newstring = strrev(string);

(4).重復字符串,代碼如下:

$newstring = str_repeat(string, count);

返回一個重復count次string的新字符串。

(5).填充字符串,代碼如下:

$newstring = str_pad(to_pad, length[, with[, type]]);

其中type有:STR_PAD_RIGHT(默認)、STR_PAD_LEFT和STR_PAD_BOTH三種;with默認為空格,函數(shù)表示把to_pad字符串用with填充為一個長度為length的字符串,如下代碼:

  1. // 子串 
  2. var_dump(substr('1234567890', 8));       // 90 
  3. var_dump(substr('1234567890', 0, 2));    // 12 
  4. // 反方向子串 
  5. var_dump(substr('1234567890', -8));      // 34567890 
  6. var_dump(substr('1234567890', -8, -2));  // 345678 
  7. var_dump(substr('1234567890', -8, 2));   // 34 
  8. // 插入 
  9. var_dump(substr_replace('1234567890''a', 0, 0));   // a1234567890 
  10. // 刪除 
  11. var_dump(substr_replace('1234567890''', 8));       // 12345678 
  12. // 反方向刪除 
  13. var_dump(substr_replace('1234567890''', -2, -1));  // 123456780 
  14. // 替換 
  15. var_dump(substr_replace('1234567890''a', 0, 1));   // a234567890 
  16. // 反方向替換 
  17. var_dump(substr_replace('1234567890''a', -2, -1)); // 12345678a0 
  18. // 字符串反轉(zhuǎn) 
  19. var_dump(strrev('1234567890'));     // 0987654321 
  20. // 重復字符串 
  21. var_dump(str_repeat('12', 3));      // 121212 
  22. // 填充字符串 
  23. var_dump(str_pad('a', 10, '12'));               // a121212121 
  24. var_dump(str_pad('a', 10, '12', STR_PAD_LEFT)); // 121212121a 
  25. var_dump(str_pad('a', 10, '12', STR_PAD_BOTH)); // 1212a12121 

3.分解字符串

在PHP中,字符串的分解用explode,合并用implode(join是implode的別名),標記用strtok,還有另一個函數(shù)slipt也可以分解(正則分解),但5.3以后版本已經(jīng)不推介了, 另外PHP中還有一個sscanf()函數(shù),用于讀取字符串。

strtok標記時,用strtok($str, $token)來初始化,用strtok($token)來繼續(xù)取值,代碼如下:

  1. $str = '1,2,3'
  2. $arr1 = explode(','$str);     // array('1', '2', '3') 
  3. $arr2 = explode(','$str, 2);  // array('1', '2,3') 
  4. $str1 = implode(','$arr1);    // '1,2,3' 
  5. $str2 = strtok($str',');      // 1 
  6. $str3 = strtok(',');            // 2 
  7. $str4 = strtok(',');            // 3 
  8. // array(86, 10, 88888888, 'Beijin') 
  9. $arr3 = sscanf('+86(10)88888888 Beijin''+%d(%d)%d %s'); 

4.字符串查找

在PHP中,字符串的查找有三個系列,返回位置的、返回字符串的、掩碼個數(shù)匹配,其中,返回位置的的函數(shù)一共有兩個,strpos()和strrpos();返回字符串的也有兩個strstr()和strchr();返回掩碼匹配數(shù)的函數(shù)有strspn()和strcspn()。

strpos表示從左邊開始計數(shù),返回要查找的字符串第一次出現(xiàn)的位置;strrpos表示從右邊計數(shù),返回要查找的字符串第一次出現(xiàn)的位置。

strstr表示從左邊計數(shù),返回要查找字符串第一次到結(jié)尾的子串(包括查找字符串),當查找的是字符時,可以用ascii碼數(shù)字來表示字符;stristr表示不區(qū)分大小查找;strchr是strstr的別名;strrchr返回字符最后出現(xiàn)到結(jié)尾的子串。

strspn表示從左邊計數(shù),第一次出現(xiàn)非掩碼之前的子串的字符數(shù);strcspn表示從左邊計數(shù),第一次出現(xiàn)掩碼之前的子串的字符數(shù)。

示例代碼如下:

  1. $pos = strpos('This a hello world program'' ');        // 4 
  2. $pos = strpos('This a hello world program', 32);         // 4 
  3. $pos = strrpos('This a hello world program'' ');       // 18 
  4. $pos = strrpos('This a hello world program', 32);        // 18 
  5. $str = strstr('This a hello world program'' ');        // " a hello world program" 
  6. $str = strstr('This a hello world program', 32);         // " a hello world program" 
  7. $str = stristr('This a hello world program'' A');      // "a hello world program" 
  8. $str = stristr('This a hello world program', 65);        // "a hello world program" 
  9. $str = strrchr('This a hello world program'' ');       // " program" 
  10. $str = strrchr('This a hello world program', 32);        // " program" 
  11. $str1 = "12345 12345 12345"
  12. $len = strspn($str1'12345');                           // 5 
  13. $len = strcspn($str1' ');                 //5 

常用的字符串操作

1.訪問單個字符

在PHP中,可以把字符串當成一個字符的數(shù)組,可以直接用數(shù)組的訪問方法來訪問字符串。如$str[0]。

在這里要注意的是,如果字符是ASCII碼以外時,訪問會有問題,因為這種訪問只能取得一個字節(jié)。

2.刪除空白字符

在PHP中,可以用trim(), ltrim(), rtrim()三個函數(shù)來刪除字符串開頭或結(jié)尾的空白字符。

其中,trim()用于刪除字符前后的空白字符;ltrim()用于刪除字符左側(cè)的空白字符;rtrim()用于刪除字符右側(cè)的空白字符。

在默認情況下,會刪除以下字符:空格( |Ox20)、制表符TAB(n|Ox09)、換行(n|OxOA)、回車(r|0x0D)、空字符(|Ox00)。

也可以自己在參數(shù)里指定。

3.改變大小寫

strtolower() 把整個字符串轉(zhuǎn)化為小寫。

strtoupper() 把整個字符串轉(zhuǎn)化為大寫。

ucfirst() 把字符串的第一個字符轉(zhuǎn)化為大寫,其它字符不變。

ucwords() 把字符串里的每一個單詞的第一個字符轉(zhuǎn)為大寫,其它字符不變。

4.HTML轉(zhuǎn)義

HTML轉(zhuǎn)義是指把字符串轉(zhuǎn)化成HTML顯示用的字符串,對此,PHP中有兩個函數(shù)實現(xiàn)此功能。

htmlentities() 把除空格外的所有可以轉(zhuǎn)換的字符都轉(zhuǎn)成HTML形式。

htmlspecialchars() 把必要的(與符號&、雙引號、單引號、大于號、小于號)轉(zhuǎn)化為HTML形式。

5.URL轉(zhuǎn)義

URL轉(zhuǎn)義是指把字符串轉(zhuǎn)化成URL字符串,對此,PHP中有兩個函數(shù)實現(xiàn)此功能。

urlencode()和urldecode()是把空格轉(zhuǎn)成+號,其它的轉(zhuǎn)成URL字符串,前者轉(zhuǎn)換,后者反轉(zhuǎn)換

rawurlencode()和rawurldecode()是把空格轉(zhuǎn)成%20號,即普通URL字符串,其它的轉(zhuǎn)成URL字符串,前者轉(zhuǎn)換,后者反轉(zhuǎn)換

6.SQL轉(zhuǎn)義

跟PHP最相關(guān)的兩個數(shù)據(jù)庫(MySQL和PostgreSQL)都是以反斜杠為轉(zhuǎn)義符的(Oracle是自己定義,其它數(shù)據(jù)庫沒有測試),對此PHP中用addslashes()函數(shù)來添加這些反斜杠,用stripcslashes()函數(shù)來刪除這些反斜杠

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久精品福利 | 国产一级免费视频 | 日韩在线视频免费 | 日韩一区二区三区高清 | 狼人综合视频 | 91精品国产综合久久久久久 | 欧美成人三区 | 日韩精品1区 | 国产精品美女 | 亚洲精品电影网在线观看 | 国产在线看 | 日韩在线播放视频 | 国产精品久久久久久久第一福利 | 神马久久精品 | 黄色片网站免费看 | 亚洲www啪成人一区二区麻豆 | 亚洲欧美在线视频 | 99热.com| 极品束缚调教一区二区网站 | 色啪综合 | 国产成人高清视频 | 99re66热这里只有精品8 | 国产精品国产三级国产三级人妇 | 国产欧美精品一区二区色综合 | 日韩视频二区 | 亚洲成人一二三 | 蜜乳av网站| 日干夜干| pacopacomama在线| 那里能看毛片 | 国产精品一区二区av | 亚洲欧洲日韩av | 2023av在线视频 | 国产成人av在线播放 | 欧美视频三区 | 成人看片在线观看 | 国产午夜精品久久久久久久 | 99精品久久99久久久久 | 日日夜夜亚洲 | av中文字幕第一页 | 天天爱综合 |