php学习笔记 --- 关于字符串函数


[本文由 程序员炼金术账号 发布,2017年2月28日]


mixed strpos ( string $haystack , mixed $needle)

查找字符串首次出现的index位置 
找不到index则返回false

因此判断要用=== 

<?php
$string = 'abc';
$search = 'a';
$pos = strpos($string,$search);
if($pos === false){
echo "Not Found.";
}else{
echo "Found.";
}
?>
mixed strrpos( string $haystack , mixed $needle)

查找字符串最后出现的index位置 


mixed stripos( string $haystack , string $needle)

i(ignorecase)代表着忽略大小写的意思


mixed strripos( string $haystack , string $needle)






int strlen ( string $string )

获取字符串的长度


mixed mb_strlen ( string $str [, string $encoding = mb_internal_encoding() ] )
获取中文字符串的长度

<?php
$mystring = '中文';
echo strlen($mystring);//输出结果是6,utf8编码下一个汉字占3个字符
echo mb_strlen($mystring,'utf-8');//输出结果是2
?>



替换

mixed str_replace ( mixed $search , mixed $replace , mixed $subject)
子字符串替换
该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。
$search 可以指定一个字符串或是一个字符串数组,当指定数组时,数组内的所有被找到的元素都被替换 

//$search和$replace都是数组的情况
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...每次替换后又重头开始
// 由于从左到右依次替换,最终 E 被 F 替换
mixed str_ireplace ( mixed $search , mixed $replace , mixed $subject)

忽略大小写进行替换


string strtr ( string $str , array $replace_pairs )
同时替换多个字符串
$replace_pairs = array('search' => 'replace',....)





截取子字符串

string substr ( string $string , int $start [, int $length ] )
$start可以是负数,如当$start = -1时,则指向字符串结尾处向前数第1个位置。

string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
strstr的别名是strchr
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。
若为 $before_needle为TRUE,strstr() 将返回 needle 在 haystack 中的位置之前的部分。 

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com

$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?> 


string strrchr ( string $haystack , mixed $needle )
该函数返回 haystack 字符串中的一部分,这部分以 needle 的最后出现位置开始,直到 haystack 末尾。 






分割


1.按长度分割,返回数组
array str_split ( string $string [, int $split_length = 1 ] )


2.按长度分割,返回字符串
string chunk_split ( string $body [, int $chunklen = 76 [, string $end = "\r\n" ]] )

它会在每 chunklen 个字符后边插入 end。

<?php
$string = 'hihelloworld';
$result = chunk_split($string,2,'<br/>');
//分割后插入换行符
//hi<br/>he<br/>ll<br/>ow<br/>or<br/>ld<br/> 
echo $result;
?>  


3.正则表达式分割
array split ( string $pattern , string $string [, int $limit ] )

如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。 
如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。

<?php
// 分隔符可以是斜线,冒号,或横线
$date = "04/30/1973-14:55:30";
list($month, $day, $year,$hour,$minute,$second) = split ('[/:-]', $date);
echo "Month: $month; Day: $day; Year: $year; Hour: $hour; Minute: $minute; Second: $second;<br />\n";
?> 


4.单个字符串分割
array explode ( string $delimiter , string $string [, int $limit ] )




连接

string implode ( string $glue , array $pieces )
explode的逆向函数,用$glue将$pieces内的每个成员连接起来 



字符串反转

string strrev ( string $string )

返回 string 反转后的字符串。 只能反转英文

中文字符串反转

<?php
$str = '苟利国家生死以,岂因祸福避趋之';
$result = '';
for($i = mb_strlen($str,'utf-8')-1; $i >= 0; $i--){
	$result .= mb_substr($str, $i,1,'utf-8');
}
echo $result;//之趋避福祸因岂,以死生家国利苟
?> 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值