首页 > 开发 > PHP > 正文

PHP中一些可以替代正则表达式函数的字符串操作函数

2024-05-04 22:17:40
字体:
来源:转载
供稿:网友

0x01:根据预定义的字符对字符串进行词法分析

代码如下:
<?php
/*
 * 在处理大量信息时,正则表达式函数会使速度大幅减慢。应当在需要使用正则表达式解析比较复杂的字符串时才能使用这些函数。如果要解析简单的表达式,还可以采用很多可以显著加快处理过程的预定义函数。
 */

/*
 * 根据预定义的字符对字符串进行词法分析
 * strtok()函数根据预定义的字符列表来解析字符串。其形式为:
 * string strtok(string str,string tokens)
 * strtok()函数,必须连续调用这个函数,才能完全的对一个字符串进行词法分析;每次调用该函数只是对字符串的下一部分做词法分析。但是,str参数只需要指定一次,因为函数会跟踪str中的位置,知道完全对str完成了词法分析,或者指定了心得str参数。
 * 如下面的例子所示:
 */
$info="lv chen yang|Hello:world&757104454@qq.com";
//定义界定符,包括(|)(:)( )(&)
$tokens="|:& ";
$tokened=strtok($info, $tokens);
while ($tokened)
{
 echo "Element:$tokened<br/>";
 //连续调用strtok()函数,完成对整个字符串的词法分析
 $tokened=strtok($tokens);
}
?>

0x02:根据预定义的定界符分解字符串

代码如下:
<?php
/*
 * 根据预定义的定界符分解字符串:explode()函数
 * 次函数将字符串str分成子串数组,其形式为:
 * array explode(string separator,string str [, int limit])
 * 原字符串被根据separator指定的字符串分割为不同的元素。元素的数量可以通过可选的参数limit来限制。可以结合explode()/sizeof()和strip_tags()来确定给定文本块中单词的总数
 * 如下所示:
 */
$summary="
   In the latest installment of the ongoing Developer.com PHP series.
   I discuss the many improvements and addtions to
   <a href=/"http:www.php.com/">PHP</a> object-oriented architecture.
   ";
echo "<br/>";
$words=explode(' ', strip_tags($summary));
echo "This sentence's lenght is:".sizeof($words);
/*
 * explode()函数始终比preg_split、spilt()和spliti()快得多。因此,在不需要使用正则表达式时,一定要使用这个函数。
 */
?>

0x03:将数组转换成字符串

代码如下:
<?php
/*
 * 将数组转换成字符串
 * explode()函数可以根据界定字符将字符串转换为相应的数组,但是可以通过implode()函数将数组转换为规定的界定字符为界限的字符串
 * 其形式为:
 * string implode(string delimiter,array pieces)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表