PHP 中,一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。详见字符串类型详解。
注意: 在 32 位版本中,string 最大可以达到 2GB(最多 2147483647 字节)。
语法
一个字符串可以用 4 种方式表达:
- 单引号
- 双引号
- heredoc 语法结构
- nowdoc 语法结构
单引号
定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ‘)。
要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\)。其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
注意: 不像双引号和 heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。
双引号
如果字符串是包围在双引号(”)中, PHP 将对以下特殊的字符进行解析:\n、\r、\t、\v、\e、\f、\、\$、\”。
和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。
用双引号定义的字符串最重要的特征是变量会被解析,当 PHP 解析器遇到一个美元符号($)时,它会和其它很多解析器一样,去组合尽量多的标识以形成一个合法的变量名。可以用花括号来明确变量名的界线。
常用字符串处理函数
一,字符串截断 trim(),rtrim(),ltrim()
trim() 函数移除字符串两侧的空白字符或其他预定义字符,rtrim — 删除字符串末端的空白字符(或者其他字符),ltrim() 函数移除字符串左侧的空白字符或其他预定义字符。
二,格式化字符串 htmlspecialchars()
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。语法为:htmlspecialchars(string,quotestyle,character-set).
& 转换成 &
< 转换成 <
> 转换成 >
" 转换成 "
' 转换成 '
三,字符串连接和分割 explode()、implode()和 join()
explode()示例
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
implode()示例
// implode(array $array): string
$array = ['lastname', 'email', 'phone'];
var_dump(implode(",", $array)); // string(20) "lastname,email,phone"
// Empty string when using an empty array:
var_dump(implode('hello', [])); // string(0) ""
// The separator is optional:
var_dump(implode(['a', 'b', 'c'])); // string(3) "abc"
PHP 7.4.0 在 array 之后传递 separator 已经被废弃
四,获取字符串长度 strlen() 和 mb_strlen()
$a = 'abc';
echo strlen($a); //输出3
echo mb_strlen($a); //输出3
$b = '你好啊';
echo strlen($b); //输出9
echo mb_strlen($b); //输出3
$b = '你好啊abc';
echo strlen($b); //输出12
echo mb_strlen($b); //输出6
五,截取字符串 substr() 和 mb_substr()
substr(string,start,length)
参数 描述
string 必需。规定要返回其中一部分的字符串。
start 必需。规定在字符串的何处开始。
正数 – 在字符串的指定位置开始
负数 – 在从字符串结尾的指定位置开始
0 – 在字符串中的第一个字符处开始
length 可选。规定要返回的字符串长度。默认是直到字符串的结尾。
正数 – 从 start 参数所在的位置返回
负数 – 从字符串末端返回