1.字符串翻转函数:$string = strrev(string);//返回一个翻转顺序的拷贝
2.字符串复制函数:$repeated = str_repeat(string,count);//返回一个由参数string重复count次组成的新字符串;
3.字符串填充函数:
$padded = str_pad(original,length[,with[,pad_type]]);
第一个参数:要填充的字符串;
第二个参数:要填充的长度;
第三个参数:要填充的字符串,默认填充空格
第四个参数:填充方式:STR_PAD_RIGHT(默认在右边填充)、STR_PAD_LEFT(在左边填充)、STR_PAD_BOTH(两边填充,长度均分,使原字符串居中对齐)
4.分解和合并字符串:
①分解字符串:
1)$array = explode(分隔符,string[,limit]);
第一个参数:字符串分隔符
第二个参数:要处理的字符串
第三个参数:要返回数组中值的最大数目,如果达到上限的话,数组的最后一个元素将会包含字符串剩余的部分。
返回值:分解后子串组成的字符数组
2)$first_chunk = strtok(string,分隔符);
$next_chunk = strtok(分隔符);
strtok()函数可用于遍历一个字符串,每次得到一个新的字符串块。第一次调用strtok()的时候,需要传递两个参数:标记分隔符和要遍历的字符串,
要得到剩下的标记,只需重复调用仅带有分隔符的strtok(),当没有任何标记可以返回时,strtok()函数返回false
如果再次调用strtok()时带有两个参数,就会重新初始化迭代器。
3)$array = sscanf(string,模板);
返回值为字段数组
$count = sscanf(string,模板,var1,var2,...);
返回值为字段的个数
字段的值存储在变量var1,var2,...中
②合并字符串:
$array = implode(分隔符,字符数组);
join()函数是implode()的别名函数
输出:
2.字符串复制函数:$repeated = str_repeat(string,count);//返回一个由参数string重复count次组成的新字符串;
3.字符串填充函数:
$padded = str_pad(original,length[,with[,pad_type]]);
第一个参数:要填充的字符串;
第二个参数:要填充的长度;
第三个参数:要填充的字符串,默认填充空格
第四个参数:填充方式:STR_PAD_RIGHT(默认在右边填充)、STR_PAD_LEFT(在左边填充)、STR_PAD_BOTH(两边填充,长度均分,使原字符串居中对齐)
4.分解和合并字符串:
①分解字符串:
1)$array = explode(分隔符,string[,limit]);
第一个参数:字符串分隔符
第二个参数:要处理的字符串
第三个参数:要返回数组中值的最大数目,如果达到上限的话,数组的最后一个元素将会包含字符串剩余的部分。
返回值:分解后子串组成的字符数组
2)$first_chunk = strtok(string,分隔符);
$next_chunk = strtok(分隔符);
strtok()函数可用于遍历一个字符串,每次得到一个新的字符串块。第一次调用strtok()的时候,需要传递两个参数:标记分隔符和要遍历的字符串,
要得到剩下的标记,只需重复调用仅带有分隔符的strtok(),当没有任何标记可以返回时,strtok()函数返回false
如果再次调用strtok()时带有两个参数,就会重新初始化迭代器。
3)$array = sscanf(string,模板);
返回值为字段数组
$count = sscanf(string,模板,var1,var2,...);
返回值为字段的个数
字段的值存储在变量var1,var2,...中
②合并字符串:
$array = implode(分隔符,字符数组);
join()函数是implode()的别名函数
example:
<?php
/*
* 分解和合并字符串的测试
*/
//分解方式一:使用explode()函数
$string1 = 'Fred,25,Wilma';
$fields1 = explode(",",$string1);
var_dump($fields1);
$fields2 = explode(",", $string1,2);//将字符串按","分隔成2段
var_dump($fields2);
//合并字符串
$string2 = implode(",", $fields1);
//分解字符串方式二:使用strtok()函数
$token = strtok($string2, ",");
while($token !== false){
echo "$token\n";
$token = strtok(",");
}
//分解字符串方式三:使用sscanf()函数
$string3 = "Fred\tFlintstone (35)";
$arr = sscanf($string3, "%s\t%s (%d)");
var_dump($arr);
$first = null;
$last = null;
$age = null;
$n = sscanf($string3,"%s\t%s (%d)",$first,$last,$age);
echo "Matched $n fields:$first $last is $age years old";
?>
输出:
5.字符串查找函数
①返回位置的查找:
1)strpos()函数查找一个小字符串在较大字符串中第一次出现的位置:
$position = strpos(large_string,small_string);
如果没有找到返回false
2)strrpos()函数查找某个字符(注意是单个字符)在字符串中最后一次出现的位置。如果将第二个参数传入一个字符串,则只查找该字符串的首字符。
参数和返回值类型都与strpos()相同
3)查找一个字符串的最后出现的位置:$pos = strpos(strrev(long_string),strrev(small_string));
②返回剩余的字符串
1)strstr()函数查找一个小字符串在大字符串中第一次出现的位置,并返回从小字符串开始的部分。
2)strstr()的别名:strchr();
3)不区分大小写的strstr():stristr()
4)查找字符在字符串最后出现的位置:strrchr();
③分解URL:$array = parse_url(url);返回一个由URL成分组成的数组;
example:
<?php
/*
* 字符串查找函数的测试
*/
//strpos()函数测试
$string1 = "gfgabcdabfdsfsabcvfd";
echo $pos1 = strpos($string1,"ab");
echo "\n";
//strrpos()函数测试
$string2 = "Fred,Flintstone,35,Wilma";
echo $pos2 = strrpos($string2, ",");
echo "\n";
//查找一个字符串的最后出现位置。
$string3 = "Today is the day we go on holiday to Florida";
$to_find = "day";
$pos3 = strpos(strrev($string3),strrev($to_find));//$pos3是要查找的字符串在反转字符串中的位置
if($pos3 == false){
echo "not found\n";
}else{
$pos4 = strlen($string3)- $pos3 - strlen($to_find);
echo $pos4;
echo "\n";
}
//测试strstr()及其变种函数
$string4 = "Fred,Flintstofe,35,Wilma";
echo $rest = strstr($string4, ",");
echo "\n";
echo $rest = stristr($string4, 'f');//不区分大小写识别
echo("\n");
echo $rest = strrchr($string4, 'i');
echo "\n";
//测试parse_url()函数
var_dump(parse_url('http://me:secret@example.com/cgi-bin/board?user=fred'));
?>
输出: