<?php
/**
* substr ( string $string , int $start [, int $length ] ) : string
*/
$str = 'abcdefg';
// cdefg 不指定length默认到字符串的结尾
echo substr($str, 2);
// cde
echo substr($str, 2, 3);
// ab start=0表示从第一个字符开始
echo substr($str, 0, 2);
// fg start为负数表示从字符串结尾的位置开始
echo substr($str, -2);
// cdef length为负数表示到字符串结尾的位置
echo substr($str, 2, -1);
// ef
echo substr($str, -3, -1);
<?php
/**
* mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string
* 根据字符数执行一个多字节安全的 substr() 操作
* encoding 参数为字符编码. 如果省略, 则使用内部字符编码.
*/
$str = '今天天气不错hello';
// 今
echo substr($str, 0, 3);
// 今天天
echo mb_substr($str, 0, 3);
// 乱码
echo substr($str, 0, 7);
// 今天天气不错h
echo mb_substr($str, 0, 7);
// 今天天气不错h
echo mb_substr($str, 0, 7, 'utf-8');