[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 十六进制数
```