连接和分割字符串

  • 2020-09-23 14:54:19
  • 阅读次数:
  • 作者:盈岚科技小编
  • 来源:http://www.lyjtt.cn

做网站中,一般地,如果想查看字符串的各个部分。例如,查看句子中的单词(如在拼写检查时),或者要将一个域名或电子邮件地址分割成一个个的组件部分。PHP提供了几个字符串函数(和一个正则表达式函数)来实现此功能。

explode()函数能够劈开字符串,具体语法如下:array explode(string separator, string input, int limit);

这个函数带有一个输入字符串作为参数,并根据一个指定的分隔符字符串将字符串本身分割为小块,将分割后的小块返回到一个数组中。可以通过可选的参数limit来限制分成字符串小块的数量。

【示例1】如果通过顾客的电子邮件地址获得域名,可以使用如下所示的代码:$email_array = explode("@", $email);

在这里,调用函数explode()将顾客的电子邮件地址分割成两部分:用户名称,它保存于$email_array[0]中,而域名保存在$email_array[1]中。现在,就可以测试域名来判断顾客的来源,分别进行不同的反馈处理。if ($email_array[1]=="bigcustomer.com")    $toaddress = "bob@bobsdomain.com";else    $toaddress = "feedback@bobsdomain.com";注意:如果域名是大写的或者大小写混合的,这个函数就无法正常使用。这时可以通过将域名转换成全是大写或小写的方法来避免这个问题,然后再按如下所示方法进行检查是否匹配。if (strtolower($email_array[1])=="bigcustomer.com")       $toaddress = "bob@bobsdomain.com";else       $toaddress = "feedback@bobsdomain.com";

使用implode()或join()函数可以实现与函数explode()相反的效果,这两个函数的效果是一致的。例如:$new_email = implode("@", $email_array);以上代码是从$email_array中取出数组元素,然后用第一个传入的参数字符将它们连接在一起。这个函数的调用同explode()十分相似,但效果却相反。与函数explode()每次都将一个字符串全部分割成若干小块不同,strtok()函数一次只从字符串中取出一些片段。对于一次从字符串中取出一个单词的处理来说,strtok()函数比explode()函数的效果更好。

strtok()函数的基本语法如下:string strtok(string input, string separator);

分隔符可以是一个字符,也可以是一个字符串,但是,需要注意的是,输入的字符串会根据分隔符字符串中的每个字符来进行分割,而不是根据整个分隔字符串来分隔。

调用函数strtok()并不是那么简单。为了从字符串中得到第一个片段,可以调用strtok()函数,并带有两个输入参数:一个是要进行片段化处理的字符串,还有一个就是分隔符。为了从字符串中得到片段序列,可以只用一个参数(分隔符),该函数会保持它自己的内部指针在字符串中的位置。如果想重置指针,可以重新将该字符串传给这个函数。

【示例2】使用strtok()函数获取字符串片段。$token = strtok($feedback, " ");echo $token."<br>";while ($token!=""){    $token = strtok(" ");    echo $token."<br>";};

通常,使用像empty()这样的函数来检查顾客是否在表单中真正输入了反馈信息。在上面代码中,将顾客反馈中的每个片段打印在每一行上,并一直循环到不再有字符片段。在这个过程中,空字符串将被自动跳过。使用substr()函数可以访问一个字符串给定起点和终点的子字符串。当需要得到某个固定格式字符串中的一部分时,它会非常有用。substr()函数的基本语法如下:string substr(string string, int start, int [length] );这个函数将返回字符串的子字符串副本。

【示例3】使用substr()函数截取字符串。$test = "Your customer service is excellent";substr($test, 1);

如果只用一个正数作为子字符串起点来调用这个函数,将得到从起点到字符串结束的整个字符串。上面示例将返回“our customer service is ex-cellent”。注意,字符串的起点和数组一样是从零开始的。

【示例4】如果只用一个负数作为子字符串起点来调用它,将得到一个原字符串尾部的一个子字符串,字符个数等于给定负数的绝对值。例如:$test = "Your customer service is excellent";substr($test, -9);

上面代码将返回“excellent”。length参数可以用于指定返回字符的个数(如果它是正数),或是字符串序列的尾部(如果它是负数)。例如:substr($test, 0, 4);将返回字符串的前4个字符,即“Your”。下面的代码:echo substr($test, 4, -13);将返回从第4个到倒数第13个字符,即“cus-tomer service”,第1个字符的位置为0,因此位置5就是第6个字符。


当前文章标题:连接和分割字符串

当前URL:http://www.lyjtt.cn/news/wzzz/3281.html

上一篇:格式化字符串

下一篇:比较字符串

网站建设、抖音推广、头条推广、微信朋友圈推广、快手推广专线:15368242187(微信同号)