[TOC]
## 【字符串】相關函數
> [ 字符串函數參考](http://php.net/manual/zh/book.strings.php)
> utf-8 1字符=3字節 。 gbk 1字符=2字節
### 去空格或其他字符
* trim() ==>去除字符串首尾處的空白字符(或者其他字符)
* ltrim() ==>移除字符串左側的空白字符或其他字符。
* rtrim() ==>移除字符串右側的空白字符或其他字符。
* dirname() ==>返回路徑中的目錄部分
### 字符串生成與轉化
* str_repeat() ==>把字符串重復指定的次數。
* str_split() ==>把字符串分割到數組中。
* strrev() ==>反轉字符串。
* wordwrap() ==>按照指定長度對字符串進行折行處理。
* str_shuffle() ==>隨機打亂字符串中的所有字符。
* parse_str() ==>將字符串解析成多個變量
* number_format() ==>以千位分隔符方式格式化一個數字(格式貨幣、數字、時間等。)
```
<?php
$str="1234567890.123456";
echo $str."<br>"; // 1234567890.123456
echo number_format($str)."<br>"; // 1,234,567,890
echo number_format($str, 3, ".", ",")."<br>"; // 1,234,567,890.123
```
* str_pad() ==>把字符串填充為新的長度
函數:str_pad() 按需求對字符串進行填充。
語法:string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )
STR_PAD_LEFT 字符串左添補
STR_PAD_RIGHT 字符串右添補
STR_PAD_BOTH 字符串兩端添補
```
<?php
$str = "LAMP";
echo str_pad($str, 10); //指定長度為10,默認使用空格在右邊填補"LAMP“
//指定長度為10,指定在左邊填補" -=-=-=LAMP"
echo str_pad($str, 10, "-=", STR_PAD_LEFT);
//指定長度為10,指定兩端填補 " _ _ _LAMP_ _ _“
echo str_pad($str, 10, "_", STR_PAD_BOTH);
echo str_pad($str, 6 , "_ _ _"); //指定長度為6, 默認在右邊填補" LAMP_ _"
```
### 大小寫轉換
* strtolower() ==>把字符串轉換為小寫字母。
* strtoupper() ==>把字符串轉換為大寫字母。
* ucfirst() ==>把字符串中的首字符轉換為大寫。
* ucwords() ==>把字符串中每個單詞的首字符轉換為大寫。
* lcfirst() ==>把字符串的首字符轉換為小寫。
### HTML標簽相關
* html_entity_decode() ==>把HTML 實體轉換為字符。
* htmlentities() ==>把一些預定義的 HTML 實體轉換為字符。(可以將所有的非ASCII碼轉換成對應實體代碼。)
* htmlspecialchars() ==>把一些預定義的字符轉換為 HTML 實體。(把指定特殊符號轉換成實體,如<>'&' :'&' '“':'"'''' :''' '< ':'<''>' :'>')
* nl2br() ==>在字符串中的每個新行之前插入HTML換行符。(將字符串中”\n”轉成HTML換行符“<br />”)
* strip_tags() ==>剝去字符串中的 HTML 和 PHP 標簽。
* addslashes() ==>返回在預定義的字符前添加反斜杠的字符串。
* stripslashes() ==>刪除由 addslashes() 函數添加的反斜杠。
* quotemeta() ==>在字符串中某些預定義的字符前添加反斜杠。
* ord() ==>返回字符串的首個字符的ASCII值
* chr() ==>從指定的 ASCII 值返回字符。
### 字符串比較
* strcasecmp() ==>比較兩個字符串(對大小寫不敏感)(不區分大小寫的全串比較)
* strcmp() ==>比較兩個字符串(對大小寫敏感)(整個比較是否相同)
* strncmp();(指定比較長度的字符串比較)
### 字符串切割與拼接
* substr() ==>返回字符串的一部分。
* strtok() ==>把字符串分割為更小的字符串。
* explode() ==>把字符串打散為數組。
* implode() ==>返回由數組元素組合成的字符串。
### 字符串查找替換
* str_replace() ==>替換字符串中的一些字符(對大小寫敏感)
* str_ireplace() ==>替換字符串中的一些字符(對大小寫不敏感)
* substr_count() ==>計算子串在字符串中出現的次數。
* substr_replace() ==>把字符串的一部分替換為另一個字符串。
* strchr() ==>查找字符串在另一字符串中的第一次出現(strstr()的別名)
* strstr() ==>查找字符串在另一字符串中的第一次出現(對大小寫敏感)。
* stristr() ==> 查找字符串在另一字符串中的第一次出現(忽略大小寫版本)。
* strtr() ==>轉換字符串中特定的字符。
* strpos() ==>返回字符串在另一字符串中第一次出現的位置(對大小寫敏感)
* strripos() ==> 查找字符串在另一字符串中最后一次出現的位置(不區分大小寫)
* strrpos() ==> 查找字符串在另一字符串中最后一次出現的位置(區分大小寫)
### 字符串統計
* str_word_count() ==>計算字符串中的單詞數
* strlen() ==>返回字符串的長度。
* count_chars() ==>返回有關字符串中所用字符的信息。
### 字符串編碼
* sha1() ==>計算字符串的SHA-1散列
* md5() ==>計算字符串的 MD5 散列
### printf與sprintf都是格式化字串:
```
%% 返回百分比符號
%b 二進制數
%c 依照ASCII值的字符
%d 帶符號十進制數
%e 可續計數法(如1.5e3)
%u 無符號十進制數
%f或%F 浮點數
%o 八進制數
%s 字符串
%x或%X 十六進制數
```