php中常用字符串的用法总结

发布时间:2020-07-17编辑:脚本学堂
本文介绍下,php中常用的字符串操作函数与用法,包括字符串的分割与合并、字符串的查找与替换等。有需要的朋友,参考下吧。

1,字符串的分割与合并
implode:
 

复制代码 代码示例:
echo implode(",", array('lastname', 'email', 'phone'));//数组转成字符串

explode:
 

复制代码 代码示例:
print_r(explode(",", 'lastname,email,phone'));//字符串转成数组

split:
 

复制代码 代码示例:
print_r(split("[/.-]","2008-9.12"));//以/或.或-任一符号切成数组

str_split:
 

复制代码 代码示例:
print_r(str_split("Hello Friend",1));//将字符串切开

preg_split:
 

复制代码 代码示例:
//正则分割
//$ops = preg_split("{[+*/-]}","3+5*9/2");
//print_r($ops);//返回:Array ( [0] => 3 [1] => 5 [2] => 9 [3] => 2 )

http_build_query:
 

复制代码 代码示例:
//生成 url-encoded 之后的请求字符串
$data = array('localhost'=>'aa',
'user'=>'bb',
'password'=>'cc');
echo http_build_query($data);//返回:localhost=aa&user=bb&password=cc

strtok:
 

复制代码 代码示例:
//将字符串切成小段
$string = "This istan examplenstring";
echo strtok($string,"nt");//返回:This is
echo '<hr>';
echo strtok("nt"); //当第二次返回:an example
echo '<hr>';
echo strtok("nt"); //当第三次返回:string

2,字符串的查找和替换
字符串中很多是 r:取最后的,i:不区分大小写的
 

复制代码 代码示例:
echo $pos = strpos('abcdef abcdaef', 'a'); // 字母a第一次出现的位置,区分大小写
echo $pos = strrpos('abcdef abcdeaf', 'a'); // 字母a最后一次出现的位置,区分大小写
 

stripos:不区分大小写
strripos:不区分大小写
 

复制代码 代码示例:
echo strstr('user@exa@mple.com', '@');//返回:@exa@mple.com
 

stristr:不区分大小写
 

复制代码 代码示例:
echo strchr('user@exa@mple.com', '@');//返回:@exa@mple.com
 

strrchr:则返回:@mple.com,

preg_grep:
 

复制代码 代码示例:
//返回与模式匹配的数组单元
$food = preg_grep("/^p/",array("apple","orange","pip","banana"));
print_r($food); //返回:Array ( [2] => pip )

strtr:
 

复制代码 代码示例:
//以指定的数组替换找到的字符串
$arr = array("www"=>"ftp","yahoo"=>"baidu");
echo strtr("www.yahoo.com",$arr);//返回:ftp.baidu.com
echo strtr("www.yahoo.com","wo","sx");//返回:sss.yahxx.cxm 翻译字符串 把所有w换成了s把所有的o换成了x

strspn:
 

复制代码 代码示例:
//找出比对到的最初部份的长度
echo strspn("abcdefg","1234567890");//返回:0
//找出没有比对到的最初部份的长度
echo strcspn("abcdefg","1234567890");//返回:7

3,字符串的正则匹配
preg_match:
 

复制代码 代码示例:
//返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。
if (preg_match ("/php/i", "PhP is the web scripting language of choice."))
echo "存在";
else
echo "不存在";

preg_match_all:
 

复制代码 代码示例:
//则相反,会一直搜索到 subject 的结尾处。
preg_match_all("/(?(d{3})?)?(?(1)[-s])d{3}-d{4}/x",
"Call 555-1212 or 1-800-555-1212", $phones);
print_r($phones[0]);//取得所有的电话号码

ereg_replace:
 

复制代码 代码示例:
//URL 替换为超连接
echo ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=""></a>", '这是百度http://www.baidu.com网站。');
preg_replace:过滤
$search = array ("'<script[^>]*?>.*?</script>'si", // 去掉 javascript
"'<[/!]*?[^<>]*?>'si", // 去掉 HTML 标记
"'([rn])[s]+'", // 去掉空白字符
"'&(quot|#34);'i", // 替换 HTML 实体
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(d+);'e"); // 作为 PHP 代码运行
$replace = array ("",
"",
"1",
""",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(1)");
echo $text = preg_replace ($search, $replace, '<b>test</b><script>alert("adfasdf");</script>');

preg_quote:
 

复制代码 代码示例:
//转义正则表达式字符,把每个要加都加上,符合正则式。
echo preg_quote('$40 for a g3/400','/');//返回:$40 for a g3/400

sql_regcase:
 

复制代码 代码示例:
//产生用于不区分大小的匹配的正则表达式
echo sql_regcase("Foo-bar.a"); //返回:[Ff][Oo][Oo]-[Bb][Aa][Rr].[Aa]