PHP中一些可以替代正则表达式函数的字符串操作函数
0x01:根据预定义的字符对字符串进行词法分析
复制代码代码如下:
/根据预定义的字符对字符串进行词法分析strtok()函数根据预定义的字符列表来解析字符串。其形式为:stringstrtok(stringstr,stringtokens)strtok()函数,必须连续调用这个函数,才能完全的对一个字符串进行词法分析;每次调用该函数只是对字符串的下一部分做词法分析。但是,str参数只需要指定一次,因为函数会跟踪str中的位置,知道完全对str完成了词法分析,或者指定了心得str参数。如下面的例子所示:/$info="lvchenyang|Hello:world&757104454@qq.com";//定义界定符,包括(|)(:)()(&)$tokens="|:&";$tokened=strtok($info,$tokens);while($tokened){echo"Element:$tokened ";//连续调用strtok()函数,完成对整个字符串的词法分析$tokened=strtok($tokens);}?>
0x02:根据预定义的定界符分解字符串
复制代码代码如下:
PHPobject-orientedarchitecture.";echo" ";$words=explode('''',strip_tags($summary));echo"Thissentence''slenghtis:".sizeof($words);/explode()函数始终比preg_split、spilt()和spliti()快得多。因此,在不需要使用正则表达式时,一定要使用这个函数。/?>
0x03:将数组转换成字符串
复制代码代码如下:
0x04:解析复杂的字符串
复制代码代码如下:
";//$substr在log中首次出现的位置是什么$pos=strpos($log,$substr);//查找行结束的数值位置$pos1=strpos($log,"\n",$pos);//计算时间戳的开始$pos=$pos+strlen($substr)+1;//检索时间戳$timestamp=substr($log,$pos,$pos1-$pos);echo"Thefileindex.htmlwasfirstaccessedon:$timestamp ";/函数stripos()和函数strpos()函数用法相同,唯一的区别是stripos()不区分大小写。/?>
0x05:找到字符串最后一次出现的位置
复制代码代码如下:
PHPobject-orientedarchitecture.";if(strlen($summary)>$limit)$summary=substr($summary,0,strrpos(substr($summary,0,$limit),""))."...";echo$summary;?>
0x06:用另外一个字符串替换字符串的所有实例
复制代码代码如下:
".$email;?>
0x07:获取字符串的一部分
复制代码代码如下:
".ltrim(strstr($url,"@"),"@");?>
0x08:根据预定义的便宜返回字符串的一部分
复制代码代码如下:
".substr($str,2,4);//output:chen?>
0x09:确定字符串出现的频率
复制代码代码如下:
";$sentencearray=explode("",$talk);foreach($sentencearrayas$item){echo"Theword$itemappears(".substr_count($talk,$item).")times ";}?>
0x10:用另一个字符串替换一个字符串的一部分
复制代码代码如下:
".substr_replace($phonenum,"",3,4);?>
|
|