字符串函数进行练习,从参数,返回值,应用场景上进行分析和记忆
<?php
//字符串函数:
// addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
// addcslashes ( string $str , string $charlist ) : string
// 返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。
// 参数:str:要转义的字符。
// charlist:如果 charlist 中包含有 \n,\r 等字符,将以 C 语言风格转换,而其它非字母数字且 ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。
//返回值:返回转义后的字符。
//\0,\r,\n 和 \t 是预定义的转义序列 经过addcslashes("n", "rn");产生的预定义转义序列原样输出
echo addcslashes("n", "rn");
echo "<br>";
//注意范围a..z 一定要啊a小于z才行否则失去范围的意义
echo addcslashes("anb[^]cr0t","A..z0..9");
echo "<br>";
//addslashes:addslashes — 使用反斜线引用字符串
//addslashes ( string $str ) : string
//返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(null 字符)。
$str="abcde'd\ddf(\0)okay";
echo addslashes($str);
echo "<hr>";
// explode:用一个字符串分割另一个字符串
// explode ( string $delimiter , string $string , int $limit = ? ) : array
// 此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
// 参数:limit
// 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
// 如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。
// 如果 limit 是 0,则会被当做 1。
//返回值:如果 delimiter 为空字符串(""),explode() 将返回 false。 如果 delimiter 所包含的值在 string 中找不到,并且使用了负数的 limit , 那么会返回空的 array, 否则返回包含 string 单个元素的数组
//此函数返回由字符串组成的 array,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
$str="this is liming";
print_r(explode(" ",$str));
echo "<hr>";
// implode(join — 别名 implode())— 将一个一维数组的值转化为字符串
// implode ( string $glue , array $pieces ) : string
// implode ( array $pieces ) : string
// 用 glue 将一维数组的值连接为一个字符串。
echo implode(':',['a','b','c']);
echo "<hr>";
// str_shuffle — 随机打乱一个字符串
// str_shuffle ( string $str ) : string
$str="This is lilei";
echo str_shuffle($str);
echo "<hr>";
// strip_tags — 从字符串中去除 HTML 和 PHP 标记
// strip_tags ( string $str , string $allowable_tags = ? ) : string
// 该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。它使用与函数 fgetss() 一样的机制去除标记。
// 参数:str输入字符串。
// allowable_tags使用可选的第二个参数指定不被去除的字符列表。
$text="<p>hello word,</p><br><?php echo 111; ?><p>okay</p>";
echo strip_tags($text);
echo "<br>";
echo strip_tags($text,"<br>");
echo "<hr>";
// stripcslashes — 反引用一个使用 addcslashes() 转义的字符串
// stripcslashes ( string $str ) : string
// 返回反转义后的字符串。
echo stripcslashes("\r")==="\r";
echo "<hr>";
// stripslashes — 反引用一个引用字符串
// stripslashes ( string $str ) : string
// 注意:如果 magic_quotes_sybase 项开启,反斜线将被去除,但是两个反斜线将会被替换成一个。
// 返回值:返回一个去除转义反斜线后的字符串(\' 转换为 ' 等等)。双反斜线(\\)被转换为单个反斜线(\)。
$str="it\'s cat";
echo stripslashes($str);
echo "<hr>";
// nl2br — 在字符串所有新行之前插入 HTML 换行标记
// nl2br ( string $string , bool $is_xhtml = true ) : string
// 在字符串 string 所有新行之前插入 '<br />' 或 '<br>',并返回。
// 参数:is_xhtml是否使用 XHTML 兼容换行符。
// 返回值:返回调整后的字符串。
//注意必须使用双引号
echo nl2br("this is \n a book");
echo "<hr>";
// parse_str — 将字符串解析成多个变量
// parse_str ( string $string , array &$result ) : void
// 如果 string 是 URL 传递入的查询字符串(query string),则将它解析为变量并设置到当前作用域(如果提供了 result 则会设置到该数组里 )。
// result如果设置了第二个变量 result, 变量将会以数组元素的形式存入到这个数组,作为替代。
$strurl="name=zhangsan&age=39&salary=1000+";
parse_str($strurl,$rs);
print_r($rs);
echo "<hr>";
// ltrim — 删除字符串开头的空白字符(或其他字符);
// ltrim ( string $str , string $character_mask = ? ) : string
// 参数:character_mask通过参数 character_mask,你也可以指定想要删除的字符,简单地列出你想要删除的所有字符即可。使用..,可以指定字符的范围。
// 返回该函数返回一个删除了 str 最左边的空白字符的字符串;
echo ltrim(",select * from `usermanage` ,",',');
echo "<hr>";
// rtrim — 删除字符串末端的空白字符(或者其他字符)同ltrim
echo rtrim(",select * from `usermanage` ,",',');
echo "<hr>";
// trim — 去除字符串首尾处的空白字符(或者其他字符)同ltirm ,rtrim
echo trim(',delete from content where id=100,',',');
echo "<hr>";
// chr ( int $ascii ) : string
// 返回相对应于 ascii 所指定的单个字符。
$str="this is a book ends width";
echo $str.chr(27);
echo "<hr>";
// ord — 转换字符串第一个字节为 0-255 之间的值
// ord ( string $string ) : int
// 解析 string 二进制值第一个字节为 0 到 255 范围的无符号整型类型。
echo ord('a'),ord('A');
echo "<hr>";
// strrev — 反转字符串
// strrev ( string $string ) : string
// 返回:返回反转后的字符串。
echo strrev('abcdefghjlkiouop');
echo "<hr>";
// strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
// strripos ( string $haystack , string $needle , int $offset = 0 ) : int
// 以不区分大小写的方式查找指定字符串在目标字符串中最后一次出现的位置
$haystack="abcdefg";
$needle="asdf";
$pos=strripos($haystack,$needle);
if($pos===false){
echo $needle.'不在'.$haystack;
}
else{
echo $needle.'在'.$haystack;
}
echo "<hr>";
// strtr — 转换指定字符
// strtr ( string $str , string $from , string $to ) : string
// 参数:该函数返回 str 的一个副本,并将在 from 中指定的字符转换为 to 中相应的字符。 比如, $from[$n]中每次的出现都会被替换为 $to[$n],其中 $n 是两个参数都有效的位移(offset)。
// 如果 from 与 to 长度不相等,那么多余的字符部分将被忽略。 str 的长度将会和返回的值一样。
// strtr ( string $str , array $replace_pairs ) : string
// str
// 待转换的字符串。
// from
// 字符串中与将要被转换的目的字符 to 相对应的源字符。
// to
// 字符串中与将要被转换的字符 from 相对应的目的字符。
// replace_pairs
// 参数 replace_pairs 可以用来取代 to 和 from 参数,因为它是以 array('from' => 'to', ...) 格式出现的数组。
echo strtr('cbaabc','abc','101');
echo "<br>";
echo strtr('cbaabc',['abc'=>110]);
效果: