//分割与组合字符串
//emplode()和implode()函数的优点,对于分隔符固定的字符串,使用起来比较方便,
//但如果分割字符并不固定,则应运用令牌方法strtok()分割
$email = 'cuffica@gmail.com';
$new = explode('@',$email);//分割字符串,第一个参数为分割字符串(可为单个字符或者多个字符),第二个为被分割的字符串
echo $email.'
';//不改变原变量的值
echo $new.'
';//返回数组
print_r($new);
echo '
';
//分割后重新组合
$str = implode('@',$new); //组合字符串,第一个参数为组合字符,第二个为数组变量,返回一个新字符串
echo $str.'
';;
$arr = array('Who','am','I');
echo implode(' --- ',$arr);
echo '
';
echo join('******',$arr); //join()与implode()相同
echo'
';
//令牌方法分割字符串strtok()
$str = "Today is a nice day!";
echo strtok($str,' ');
echo strtok($str,' ');//指针不会自动下移,始终指向起始位置
echo strtok(' ');//省略第一个参数,获取下一项
echo '
';
//利用while循环分割并读取元素
$tok = strtok($str,' ');
echo $tok.'
';
while($tok){
echo $tok.'
';
$tok = strtok(' ');
}
//当分割字符不同时
$str = "Today,is.a/nice&day!";//如果分割符是多字符怎么办????
$tok = strtok($str,',./&');
while($tok){
echo $tok.'
';
$tok = strtok(',./&');
}
//其他
echo substr($str,4,2);//参数1:字符串,参数2:开始位置,参数3:取出的长度
echo '
';
print_r(str_split($str));//所有字符(字节)拆分成新数组的每一个元素
echo '
';
$str2 = '能拆分中文吗?';
echo $str2;
print_r(str_split($str2));//输出数组元素值为乱码,不适合中文,因为中文为两个字节一个字
echo '
';
echo strrev($str);//将字符串按照字节逆序,所以也不适用与中文
echo '
';
echo strrev($str2);
?>
输出结果: