第四章 字符串操作与正则表达式(3)
2016-07-27 18:59 yojiaku 阅读(211) 评论(0) 编辑 收藏 举报4.3 用字符串函数连接和分割字符串
1.使用explode(), implode(), join()
explode():array explode(string $delimiter, string input [, int limit]);
delimiter: the boundary string(分隔符==separator)
string input: 输入字符串(即要分割的字符串)
limit: 可选参数,用于限制分成字符串小块的数量
整体意思:explode()函数带有一个输入字符串做参数(第二个参数),并根据一个指定的分隔符字符串(第一个参数)将字符串本身分割成小块,将分割后的小块返回到一个数组(array)中,且可以通过可选的参数limit来限制分成字符串小块的数量。
举例1:我们要想通过顾客的电子邮件地址获得域名,可以使用如下代码
$email_array = explode('@', $email);
在这里,我们调用函数explode()将顾客的电子邮件地址用@符号分割成两个部分:用户名称-xxx,它保存在数组$email_array[0]中;域名-(例如:qq.com),它保存在数组$email_array[1]中。然后,我们就可以测试域名来判断顾客的来源,然后将反馈送到合适的人那里:
if($email_array[1] == "bigcustomer.com"){ $toaddress = "bob@example.com"; }else{ $toaddress = "feedback@example.com"; }
注意:如果域名是大写或者大小写混合,这个函数就无法正常使用。--我们可以通过转化大小写的方法来避免这个问题:strtolower($email_array[1])
举例2:
#explode() $pizza = "yojiaku@qq.com"; $pieces = explode("@", $pizza); echo $pieces[0]; echo "<br />"; echo $pieces[1];
打印结果:
join():与explode的作用相反,从字面意思也可以理解,explode是分裂,join则是连接,join函数还跟implode函数的作用一样。
2.使用strtok()函数
与explode()函数每次都将字符串分成一小块块不同,strtok()函数只从字符串中取出一些片段(称为令牌)。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果好。
strtok():有两种原型:【1】string strtok(string $str, string $token);【2】string strtok(string $token);
str:string input
token: separator
注意:输入的字符串会根据分隔字符串中的每个字符来进行分割,而不是根据整个分隔字符串来分割。
举例:
$string = "This is\tan example\nstring"; /* Use tab and newline as tokenizing characters as well */ $tok = strtok($string, " \n\t"); while ($tok !== false) { echo "Word=$tok<br />"; $tok = strtok(" \n\t"); }
打印结果:
3.使用substr()函数
substr():string substr(string string, int start[, int length]);允许访问一个字符串给定起点和重点的字符串。一般用来得到某个固定格式字符串中的一部分。
举例:
#substr() $test = "Your customer service is excellent"; echo substr($test, 1);
打印结果:
解释:字符串的起点和数组一样是从0开始计的,所以这个示例是从第二个字母(o)开始打印;如果我们只使用一个负数来作为子字符串起点来调用它,将得到一个源字符串尾部的一个子字符串,字符个数等于给定负数的绝对值。