前端學PHP之字串函數

來源:互聯網
上載者:User

標籤:java   lis   大小   大寫   spec   單引號   double   md5   保留   

  字串的處理和分析在任何程式設計語言中都是一個重要的基礎,往往是簡單而重要的。資訊的分類、解析、儲存和顯示,以及網路中的資料都需要操作字串來完成。尤其在web開發中更為重要,程式員大部分工作都是在操作字串,本文將詳細介紹php中的字串函數

  [注意]關於javascript中字串的屬性和方法移步至此

 

特點

  因為php是弱類型語言,所以其他類型的資料一般都可以直接應用於字串操作函數中,而自己轉換成字串類型進行處理

echo substr( "1234567", 2, 4 );  //將字串用函數substr()處理,輸出子字串 345echo substr( 123456, 2, 4 );     //將整型用字串函數處理,輸出同樣是字串 345echo hello;           //先找hello常量,找不到就會將常名看作是字串使用

  字串貌似數組,可以使用中括弧文法,但由於無法與真正的數組進行區別,帶來二義性,所以最好使用功能相同的花括弧

$str = "lamp";       echo $str."<br>";       echo $str{0};//輸出字串$str中第一個字元lecho $str[1];//輸出字串$str中第二個字元a,[]也可以,不過已淘汰

  在處理變數解析時,如果在字串中遇到貨幣符號,解析器會儘可能多地取得後面的字元以組成一個合法的變數名,如果想明示指定名字的結束,用花括弧把變數名括起來

    $lamp = array(‘os‘=>‘Linux‘);      //可以解析    echo "A OS is $lamp[os].";        //不能解析,如果在對關聯陣列下標使用引號就必須使用花括弧,否則將出錯    echo "A OS is $lamp[‘os‘].";        //可以解析,如果在對關聯陣列下標使用引號就必須使用花括弧,否則將出錯    echo "A OS is {$lamp[‘os‘]}.";        //可以解析,注意PHP將數組下標看作常量名,常量不存在時將常量名稱轉為字串,效率低    echo "A OS is {$lamp[os]}.";

  [注意]在php中,一個GB2312編碼的漢字佔2個位元組,一個UTF-8編碼的漢字佔3個位元組

 

輸出

echo()

void echo ( string $arg1 [, string $... ] )

  echo()函數用來輸出一個或多個字串,它會輸出所有參數,且不會換行,沒有傳回值

  echo不是一個函數, 因此不一定要使用小括弧來指明參數,單引號,雙引號都可以。另外,如果想給echo 傳遞多個參數,就不能使用小括弧

<?phpecho "Hello World";$foo = "foobar";echo "foo is $foo"; // foo is foobarecho $foo;          // foobar?>

print()

int print ( string $arg )

  print()函數用來輸出字串,且總是返回 1

<?phpprint("Hello World");$foo = "foobar";print "foo is $foo"; // foo is foobarprint $foo;          // foobar?>
var_dump(echo(‘123‘));//報錯var_dump(print(‘123‘));//int 1

  echo可以接受多個參數(不可以加括弧),而print不可以

<?phpecho ‘1‘,‘2‘,‘3‘;//123print ‘a‘,‘b‘,‘c‘;//報錯?>

exit()

  exit()函數用來輸出一個訊息並且退出當前指令碼,沒有傳回值,同名函數為die()

void exit ([ string $status ] )void exit ( int $status )

  如果 status 是一個字串,在退出之前該函數會列印status;如果 status 是一個 integer,該值會作為退出狀態代碼,並且不會被列印輸出。退出狀態代碼應該在範圍0至254,不應使用被PHP保留的退出狀態代碼255。 狀態代碼0用於成功中止程式

<?phpexit(‘0‘);//0exit(0);//無傳回值?>

printf

  printf()函數用於輸出格式化字串

int printf ( string $format [, mixed $args [, mixed $... ]] )

sprintf

  sprintf()函數用於把格式化的字串寫入一個變數中

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

  字串轉換格式如下

%%    返回百分比符號%b    位元%c    依照ASCII值的字元%d    帶符號十進位數%e  科學計數法(如1.5e3)%u    無符號十進位數%f或%F     浮點數%o    八位元%s    字串%x或%X  十六進位數
<?php$var = 10;printf("%%,%b,%c,%d,%e,%u,%o,%f,%s,%x",$var,$var,$var,$var,$var,$var,$var,$var,$var,$var);//%,1010, ,10,1.000000e+1,10,12,10.000000,10,a$result = sprintf("%%,%b,%c,%d,%e,%u,%o,%f,%s,%x",$var,$var,$var,$var,$var,$var,$var,$var,$var,$var);var_dump($result);//string ‘%,1010, ,10,1.000000e+1,10,12,10.000000,10,a‘ (length=44)?>

 

空格

trim()

  trim()函數用於去除字串首尾處的空白字元(或者其他字元),過濾後的字串

string trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] )

  此函數返回字串str去除首尾空白字元後的結果。如果不指定第二個參數,trim() 將去除這些字元:

" " (ASCII 32 (0x20)),普通空格符"\t" (ASCII 9 (0x09)),定位字元"\n" (ASCII 10 (0x0A)),分行符號"\r" (ASCII 13 (0x0D)),斷行符號符"\0" (ASCII 0 (0x00)),空位元組符"\x0B" (ASCII 11 (0x0B)),垂直定位字元

  charlist為選擇性參數,過濾字元也可由charlist參數指定。一般要列出所有希望過濾的字元,也可以使用 “..” 列出一個字元範圍

ltrim()

  ltrim函數用於刪除字串開頭的空白字元(或其他字元)

rtrim()

  rtrim函數用於刪除字串末端的空白字元(或者其他字元) 

<?php$text  = "   \t\tHello World a1a1a1    ";$trimmed = trim($text);var_dump($trimmed);//string ‘Hello World a1a1a1‘ (length=18)$trimmed = trim($text, "a1 ");var_dump($trimmed);//string ‘        Hello World‘ (length=13)$trimmed = trim($text, "1..e ");//string ‘        Hello Worl‘ (length=12)var_dump($trimmed);$ltrimmed = ltrim($text);var_dump($ltrimmed);//string ‘Hello World a1a1a1    ‘ (length=22)$rtrimmed = rtrim($text);var_dump($rtrimmed);//string ‘           Hello World a1a1a1‘ (length=23)?>

str_pad()

  str_pad()函數使用另一個字串填充字串為指定長度

string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )

  該函數返回input被從左端、右端或者同時兩端被填充到制定長度後的結果。如果可選的 pad_string 參數沒有被指定,input 將被空白字元填充,否則它將被 pad_string 填充到指定長度

  [注意]如果pad_length的值是負數,小於或者等於輸入字串的長度,不會發生任何填充

<?php$input = "Alien";echo str_pad($input, 10); // 輸出 "Alien     "echo str_pad($input, 10, "-=", STR_PAD_LEFT); // 輸出 "-=-=-Alien"echo str_pad($input, 10, "_", STR_PAD_BOTH); // 輸出 "__Alien___"echo str_pad($input, 6 , "___");// 輸出 "Alien_"?>

 

大小寫

strtolower()

  strtolower — 將字串轉化為小寫

strtoupper()

  strtoupper — 將字串轉化為大寫

ucfirst()

  ucfirst — 將字串的首字母轉換為大寫

ucwords()

  ucwords — 將字串中每個單詞的首字母轉換為大寫

<?php$foo = ‘hello world!‘;var_dump(ucwords($foo));//string ‘Hello World!‘ (length=12)var_dump(ucfirst($foo));//string ‘Hello world!‘ (length=12)var_dump(strtoupper($foo));//string ‘HELLO WORLD!‘ (length=12)var_dump(strtolower($foo));//string ‘hello world!‘ (length=12)?>

 

HTML

nl2br()

  nl2br — 在字串所有新行之前插入 HTML 換行標記

string nl2br ( string $string [, bool $is_xhtml = true ] )
<?php/*foo isn‘t<br /> bar */echo nl2br("foo isn‘t\n bar");?>

htmlspecialchars()

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

  htmlspecialchars - 把指定特殊符號轉換成實體

& (ampersand)            &amp;" (double quote)        &quot;, unless ENT_NOQUOTES is set‘ (single quote)        &#039; or &apos;< (less than)            &lt;> (greater than)        &gt;
<?php$new ="<script>alert(1)</script>";echo $new;//彈出1$new = htmlspecialchars("<script>alert(1)</script>");echo $new; //顯示字串"<script>alert(1)</script>"?>
<?php    $str = "<B>WebServer:</B> & ‘Linux‘ & ‘Apache‘";//常有HTML標記和單引號的字串    echo htmlspecialchars($str, ENT_COMPAT);//轉換HTML標記和轉換雙引號    echo "<br>\n";    echo htmlspecialchars($str, ENT_QUOTES);//轉換HTML標記和轉換兩種引號    echo "<br>\n";    echo htmlspecialchars($str, ENT_NOQUOTES);//轉換HTML標記和不對引號轉換?>

htmlentities()

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

  htmlentities - 將所有的非ASCII碼轉換成對應實體代碼

  htmlentities()和htmlspecialchars()的功能都是轉換字元為HTML字元編碼,特別是url和代碼字串,防止字元標記被瀏覽器執行。htmlentities轉換所有的html標記,htmlspecialchars只格式化& ‘ " < 和 > 這幾個特殊符號

<?php$str = "<p>123</p>";echo $str;//顯示段落123echo htmlentities($str);//‘123‘echo htmlspecialchars($str);//‘123‘?>

strip_tags()

  strip_tags — 嘗試返回給定的字串 str 去除Null 字元、HTML 和 PHP 標記後的結果

string strip_tags ( string $str [, string $allowable_tags ] )

  使用可選的第二個參數allowable_tags指定不被去除的字元列表

<?php$text = ‘<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>‘;echo strip_tags($text);//‘Test paragraph. Other text‘echo "\n";echo strip_tags($text, ‘<p>‘).‘<br>‘;//<p>Test paragraph.</p> Other text$text = ‘<div><b>123</b></div>‘;echo strip_tags($text);//‘123‘?>

addslashes()

  addslashes — 使用反斜線引用字串,返回字串,該字串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(‘)、雙引號(")、反斜線(\)與 NUL(NULL 字元)

string addslashes ( string $str )
<?php$str = "Is your name O‘reilly?";echo addslashes($str);// "Is your name O\‘reilly?"?>

stripslashes()

  stripslashes — 反引用一個引用字串

string stripslashes ( string $str )
<?php$str = "Is your name O\‘reilly?";echo stripslashes($str);//"Is your name O‘reilly?"?>

 

格式化

strrev()

  strrev — 反轉字串

string strrev ( string $string )
<?phpecho strrev("Hello world!"); // 輸出 "!dlrow olleH"?>

strlen()

  strlen — 擷取字串長度

int strlen ( string $string )
<?php$str = ‘abcdef‘;echo strlen($str); // 6$str = ‘ ab cd ‘;echo strlen($str); // 7?>

md5()

  md5 — 計算字串的 MD5 散列值

string md5 ( string $str [, bool $raw_output = false ] )

  如果可選的raw_output被設定為TRUE,那麼MD5報文摘要將以16位元組長度的原始二進位格式返回

<?php$str = ‘apple‘;if (md5($str) === ‘1f3870be274f6c49b3e31a0c6728957f‘) {    echo "Would you like a green or red apple?";}?>

 

比較

strcmp()

  strcmp — 字串比較,如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0

int strcmp ( string $str1 , string $str2 )
<?php$var1 = "Hello";$var2 = "hello";if (strcmp($var1, $var2) !== 0) {    echo ‘$var1 is not equal to $var2 in a case sensitive string comparison‘;}?>

strncmp()

  strncmp — 限定字串長度的字串比較

int strncmp ( string $str1 , string $str2 , int $len )

  如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0

<?php echo strncmp("xybc","a3234",0); // 0 echo strncmp("xybc","a3234",1); // 1 ?>

strcasecmp()

  strcasecmp — 字串比較(不區分大小寫),如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0

int strcasecmp ( string $str1 , string $str2 )
<?php$var1 = "Hello";$var2 = "hello";if (strcasecmp($var1, $var2) == 0) {    echo ‘$var1 is equal to $var2 in a case-insensitive string comparison‘;}?>

strnatcmp()

  strnatcmp — 使用自然排序演算法比較字串

int strnatcmp ( string $str1 , string $str2 )

  如果 str1 小於 str2 返回 < 0; 如果 str1 大於 str2 返回 > 0;如果兩者相等,返回 0

<?php$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");usort($arr1, "strcmp");print_r($arr1);//Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png )usort($arr2, "strnatcmp");//Array ( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png )print_r($arr2);?>

 

                   

                                                文章來自:http://www.cnblogs.com/xiaohuochai/p/6068883.html 

前端學PHP之字串函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.