php 常用字符函数学习
1、addcslashes
- 要向字符串中的特定字符添加反斜杠
- <?php
- header('Content-type:text/html;charset=utf8');
- $str='are you ok ???';
- echo addcslashes($str,'a..z'); //注意中间是两个点,如果要指定多个字符,那么可以单列出来,如 addcslashes($str,'abr');
- //返回值是 \a\r\e \y\o\u \o\k ???
- ?>
2、addslashes 与 stripslashes
- addslashes在特定的字符前加上反斜线。这些字符是单引号,双引号,反斜线与NULL。
stripslashes是对addslashes的反转
- <?php
- header('Content-type:text/html;charset=utf8');
- $str='are "you" ok \???';
- $t= addslashes($str);
- echo $t;
- //输出值是 are \"you\" ok \\???
- echo stripslashes($t);
- //输出值是 are "you" ok \???
- ?>
3、bin2hex与hex2bin函数
bin2hex:表示把ASCII码字符的字符串转成十六进制
hex2bin:是对bin2hex函数的反转
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok ???';
- $code = bin2hex($str);
- echo $code;
- //输出 61726520796f75206f6b203f3f3f
- echo '<br>';
- echo hex2bin($code);
- //输出 are you ok ???
- ?>
4、chunk_split
chunk_split(string,length,end)
string=>表示需要分割的字符串
length=>表示分割的长度
end=>表示分割后的结尾字符串
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok ???';
- echo chunk_split($str,10,'__'); //如果最后一个不够,那么end最加在最后一位上
- //输出结果 are you ok__ ???__ 注意本函数不改变原有的字符串
- ?>
5、convert_uuencode与convert_uudecode函数
表示对指定的字符串进行编码以及解码,返回编码或解码后的字符串,如果失败,那么返回false
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok ???';
- $exa = convert_uuencode($str);
- echo $exa;
- //输出值为 .87)E('EO=2!O:R`_/S\` `
- echo '<br>';
- echo convert_uudecode($exa);
- //输出值为 are you ok ???
- ?>
6、htmlentities与htmlspecialchars
两者使用方法一样,参数一样,前者转义一些特殊字符,如欧元等
一般来说,使用 htmlspecialchars 转化掉基本字符就已经足够了,没有必要使用 htmlentities。实在要使用 htmlentities 时,要注意为第三个参数传递正确的编码
用法 htmlspecialchars(string,flags,character-set,double_encode)
- <?php
- header('Content-type:text/html;charset=utf8');
- $str='<a href="test.html">\'测试页面\'</a><script>alert(213)</script>';
- echo $str;
- echo "<hr/>";
- echo htmlentities($str);
- echo "<hr/>";
- echo htmlspecialchars($str,ENT_QUOTES);
- ?>
7、html_entity_decode与htmlspecialchars_decode
该函数分别是对htmlentities与htmlspecialchars进行返转
用法:html_entity_decode(string,flags,character-set)
- <?php
- header('Content-type:text/html;charset=utf8');
- $str='<a href="test.html">\'测试页面\'</a><script>alert(213)</script>';
- $token=htmlspecialchars($str,ENT_QUOTES);
- echo html_entity_decode($token);
echo htmlspeialchars_decode($token);- //输出则为被转义后的HTML,可以被页面解读
- ?>
8、implode 与 explode
implode(separator,array) 用指定分隔符把数组拼成字符串
explode(separator,string,limit) 以指定的分隔符把字符串分割成数组,limit为0时表示返回包含一个元素的数组,limit>0时返回包含最多 limit 个元素的数组,limit<0时
返回包含除了最后的 -limit 个元素以外的所有元素的数组
- <?php
- header('Content-type:text/html;charset=utf8');
- $arr = ['a' => 'this is a', 'b' => 'this is b', 'c' => 'this is c', 'd' => 'this is d'];
- $str = implode('-', $arr);
- echo $str;
- //输出 'this is a-this is b-this is c-this is d'
- echo '<br/>';
- var_dump(explode('-', $str, 0));
- //输出 array(1) { [0]=> string(39) "this is a-this is b-this is c-this is d" }
- echo '<br>';
- var_dump(explode('-', $str, 2));
- //输出 array(2) { [0]=> string(9) "this is a" [1]=> string(29) "this is b-this is c-this is d" }
- echo '<br>';
- var_dump(explode('-', $str, -1));
- //输出 array(3) { [0]=> string(9) "this is a" [1]=> string(9) "this is b" [2]=> string(9) "this is c" }
- ?>
9、lcfirst、ucfirst 与 ucwords
lcfirst(string) 把首字母转成小写
ucfirst(string) 把首字母转成大写
ucwords(string) 把每个单词的首字线转成大写的
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'Hello World';
- echo lcfirst($str);
- //输出 hello World
- $str = 'hello world';
- echo ucfirst($str);
- //输出 Hello world
- echo ucwords($str);
- //输出 Hello World
- ?>
10、ltrim、rtrim与trim
分别表求删除左侧,右侧及左右两侧的空白字符及其他预定义符
11、md5 与 md5_file ,sha1与sha1_file,uniqid
前者计算指定字符的散列值而后者是计算指定文件的散列值
md5(string,raw) raw为true时返回原始 16 字符二进制格式 raw为false时默认32 字符十六进制数
sha1用法类似md5
uniqid($prefix,$more_entropy
= false) $prefix表示产生字符串的前缀,$more_entropy为true的时候,唯一性更强
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'this is test';
- echo md5($str);
- //输出值 8c6d115258631625b625486f81b09532
- ?>
12、nl2br
在字符串中的每个新行(\n)之前插入 HTML 换行符(<br> 或 <br />)。
- <?php
- header('Content-type:text/html;charset=utf8');
- //注意要用双引号,不要用单引号
- $str = "this is test \nare you ok";
- echo nl2br($str);
- //输出为 this is test
- // are you ok
- ?>
13、chr 与 ord
ord表示把字符串转化成ASCII码(只转化第一个字符)
chr表示把对应的ASCII码转化成对应的字符
- <?php
- header('Content-type:text/html;charset=utf8');
- $str='ab';
- $change=ord($str);
- echo $change;
- //输出 97
- echo chr($change);
- //输出 a
- ?>
14、number_format
把数字进行格式化,输出结果为字符型
number_format(number,decimals,decimalpoint,separator)
- <?php
- header('Content-type:text/html;charset=utf8');
- $num=1234567.9876543;
- echo number_format($num);
- //输出 1,234,568
- $str = number_format($num,3,'-','+');
- echo $str;
- //输出 1+234+567-988
- var_dump(is_numeric($str));
- //输出 false
- ?>
15、crypt
单向字符串散列
语法:crypt(str,salt) 如果省略salt,那么由系统随机产生一个盐值进行加密
- <?php
- header('Content-type:text/html;charset=utf8');
- $num='are you ok???';
- echo crypt($num,'test');
- //输出 terXoxTtFKU3U
- ?>
16、strcmp 、 strcasecmp、strncmp与strncasecmp
strcmp(string1,string2) 比较两个字符串是否相等(区分大小写)
strcasecmp(string1,string2)比较两个字符串是否相等(不区分大小写)
返回值0表示相等,1表示string1大于string2,-1表示string1小于string2;
strncmp(string1,string2,length),表示比较前length个字符(区分大小写)
strncasecmp(string1,string2,length),表示比较前length个字符(不区分大小写);
返回值0表示相等,>0表示string1大于string2,<0表示string1小于string2;
- <?php
- header('Content-type:text/html;charset=utf8');
- $str1='are you ok';
- $str2='ARE YOU OK';
- $str3='are You ok';
- var_dump(strcmp($str1,$str2));
- //输出 1
- var_dump(strcasecmp($str1,$str2));
- //输出 0
- var_dump(strncmp($str1,$str3,4));
- //输出 0
- var_dump(strncmp($str1,$str3,5));
- //输出 1
- var_dump(strncasecmp($str1,$str3,5));
- //输出 0
- ?>
17、parse_str
表达式parse_str(string,array),第一个参数表示需要分解的目录字符串,第二个参数表示解析出来的结果将会被放置在array里面
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'name=aaa&age=30&sex=男';
- parse_str($str, $arr);
- var_dump($arr);
- //输出 array(3) { ["name"]=> string(3) "aaa" ["age"]=> string(2) "30" ["sex"]=> string(3) "男" }
- parse_str($str);
- echo $name, $age, $sex;
- //输出 aaa30男
- ?>
18、print
print 实际上不是一个函数(它是一个语言结构),因此你不使用圆括号来括起它的参数列表也可以。
与echo 的区别是echo 可以通过;号实现多个输出,而print一次只能输出一个
19、printf ,sprintf ,vprintf ,fprintf与fvprintf
注意以下常用format字符串
%d - 带符号十进制数 , %u - 无符号十进制数 , %f - 浮点数(locale aware), %s - 字符串
printf(string,format)直接输出格式化的内容,返回的是字符串的长度
- <?php
- header('Content-type:text/html;charset=utf8');
- //注意第二个次引用第一个format参数的时候的写法
- $len = printf('今天电脑的价格是 %.2f,明天的价格有可能还是%1$.2f', 5623.683);
- //直接输出 今天电脑的价格是 5623.68,明天的价格有可能还是5623.68
- var_dump($len);
- //输出 int(72)
- ?>
sprintf(string,format)返回格式化的内容
- <?php
- header('Content-type:text/html;charset=utf8');
- //注意第二个次引用第一个format参数的时候的写法
- $len = sprintf('今天电脑的价格是 %.2f,明天的价格有可能还是%1$.2f', 5623.683);
- //不会输出
- var_dump($len);
- //输出 string(72) "今天电脑的价格是 5623.68,明天的价格有可能还是5623.68"
- ?>
vprintf(string,array)用法与printf一样,只是第二个参数传入的是个数组
- <?php
- header('Content-type:text/html;charset=utf8');
- //注意第二个次引用第一个format参数的时候的写法
- $len = vprintf('今天电脑的价格是 %.2f,明天的价格有可能还是%1$.2f', [1234.567]);
- //直接输出 今天电脑的价格是 1234.57,明天的价格有可能还是1234.57
- var_dump($len);
- //输出 int(72)
- ?>
fprintf(file,string,format)把模式化后的内容写入到文件file中
- <?php
- header('Content-type:text/html;charset=utf8');
- if (!($fp = fopen('test.txt', 'w'))) {
- return;
- }
- $len = fprintf($fp, "今天的电脑价格是%.2f,明天的电脑有可能还是%1$.2f", 8888.987);
- // 把 今天的电脑价格是8888.99,明天的电脑有可能还是8888.99 写入到文件test.txt中,如果要以追加的形式写入文件,那么可以改变fopen的模式
- var_dump($len);
- //输出 int(69)
- ?>
- sprintf('INSERT INTO `user` (`user`, `pwd`) VALUE (%s, %1$.s), (%2$.s,%2$.s)', $db->quote('aaa'), $db->quote('bbb'));
fvprintf(file,string,array)作用与 fprintf() 函数类似,但是接收一个数组参数
20、quotemeta
quotemeta(string)表示的string内的特殊字符. \ + * ? [ ^ ] ( $ )(可能用作正则表达式的转义)
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = '\are.you?o+k*[haha]~~^??$';
- echo quotemeta($str);
//输出 \\are\.you\?o\+k\*\[haha\]~~\^\?\?\$- ?>
21、str_pad与str_repeat
str_pad(string,length,pad_string,pad_type) string表示目标字符串,length表示目标长度,pad_string表示填充的内容,pad_type表示填充的位置分别有0,1,2
str_repeat(string,multiplier) string表示目标字符串,multiplier表示重复的次数
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'abc';
- //注意:这里的长度表示总长度包含目标字符串
- echo str_pad($str, 6, '~', 0);
- //输出 ~~~abc
- echo str_pad($str, 6, '~', 1);
- //输出 abc~~~
- echo str_pad($str, 6, '~', 2);
- //输出 ~abc~~
- echo str_repeat($str, 3);
- //输出 abcabcabc
- ?>
22、strlen,strrev,str_shuffle,str_rot13
strlen(string) 返回目标字符串的长度
strrev(string) 返回字符串返转后的结果
str_shuffle(string) 随机排序string后返回
str_rot13(string) 对字符串执行 ROT13 转换,如果把转换后的字符串传入,那么会进行反转
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok???';
- echo strlen($str);
- //输出 13
- echo strrev($str);
- //输出 ???ko uoy era
- echo str_shuffle($str);
- //输出 o? okeuy?ra ?(每次输出的都不一样)
- $rot = str_rot13($str);
- echo $rot;
- //输出 ner lbh bx???
- echo str_rot13($rot);
- //输出 are you ok???
- ?>
23、str_replace,str_ireplace,strtr
str_replace与str_ireplace的用法是一样的,前者区分大小写,而后者不区分大小写
str_replace(find,replace,string,count) find表示需要替换的内容,可以为string类型也可以为array类型,replace为替换后的内容可以为string类型也可以为array类型的,并且与find成一一对应的关系,string为需要替换的字符串或者数组,count表示为计数器,返回替换的次数
strtr表示转换字符串中特定的字符,如果 from
与 to
长度不相等,那么多余的字符部分将被忽略。 str
的长度将会和返回的值一样,并且strtr具有迁移性,能够把所以应的字符向两侧进行延伸替换,具体见例子
strtr(string,from,to) 也可以是strtr(string,array),array里面的key对应的是要修改的值,value对应的是修改后的值
- <?php
- header('Content-type:text/html;charset=utf8');
- $arr = ['first', 'second', 'third', 'fourth', 'fifth'];
- $str = 'r>are you ok???';
- echo str_replace('are you', 'today is', $str, $count);
- //输出 r>today is ok???
- echo $count;
- //输出 1
- echo str_replace(['are', 'you'], ['aaa', 'bbb'], $str, $count1);
- //输出 r>aaa bbb ok???
- echo $count1;
- //输出 2
- var_dump(str_replace(['first', 'second', 'third'], ['aaa', 'bbb', 'ccc'], $arr, $count2));
- //输出 array(5) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" [3]=> string(6) "fourth" [4]=> string(5) "fifth" }
- echo $count2;
- //输出 3
- echo strtr($str, 'are', '====');
- //输出 =>=== you ok??? 本例子不仅把are进行了替换同时向两侧推进把第一个r也进行了替换
- ?>
24、str_split、strtok
str_split(string,length)表示按照length指定的长度对string进行划分,如果最后一个不满足长度,那么就把剩余的返回,返回值是一个数组,如果没有传length,那么默认为1;
strtok(string,split)表示根据split分割符对string进行拆分,返回第一部份,同进内部会记住其在字符串中的位置,下次调用的时候会向下执行。
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok???';
- var_dump(str_split($str, 4));
- // 输出 array(4) { [0]=> string(4) "are " [1]=> string(4) "you " [2]=> string(4) "ok??" [3]=> string(1) "?" }
- var_dump(str_split($str));
- // 输出 array(13) { [0]=> string(1) "a" [1]=> string(1) "r" [2]=> string(1) "e" [3]=> string(1) " " [4]=> string(1) "y" [5]=> string(1) "o" [6]=> string(1) "u" [7]=> string(1) " " [8]=> string(1) "o" [9]=> string(1) "k" [10]=> string(1) "?" [11]=> string(1) "?" [12]=> string(1) "?" }
- $toke = strtok($str, ' ');
- while ($toke !== false) {
- echo $toke, '<br>';
- $toke = strtok(' ');
- //注意这个地方的写法,无需传入string
- }
- //输出 are
- // you
- // ok???
- ?>
25、strpos、stripos、strrpos 和 strstr、stristr
strpos与stripos的用法是一致的后者表示不区分大小写,前者需要区分大小写。
strpos(string,find,start)string表示目标字符串,find表示需要寻找的字符,start表示开始找的位置
strrpos(string,find,start)表示查找字符串在另一字符串中最后一次出现的位置。
strstr(string,search,before_search)表示返回目标字符串第一次出现所查询字符串位置到最后(含本身,并且区分大小写,与stristr相对),string表示目标字符串,search表示所要查询的字符串,before_search表示是否返回前面部份,默认为false如果目标字符串包含所查询的字符串则返回对应的字符串,否则返回false
strrchr(string, needle) 查找指定字符在字符串中的最后一次出现,该函数返回needle出现的位置(含)到最后
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok???';
- echo strpos($str, 'o');
- //输出 5
- echo strpos($str, 'o', 6);
- //输出 8
- echo strrpos($str, 'o');
- //输出 8
- echo strstr($str, 'e');
- //输出 e you ok???
- echo strstr($str, 'e', true);
- //输出 ar
- ?>
- <?php
- header('content-type:text/html;charset=utf-8');
- //是否打印错误
- ini_set('display_errors', true);
- $str = 'are you ok???';
- echo strrchr($str, 'k');
- //输出 k???
- ?>
26、strtolower 和 strtoupper
strtolower(string)把单词全部转换成小写
strtoupper(string)把单词全部转换成大写
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = 'are you ok???';
- $txt = strtoupper($str);
- echo $txt;
- //输出 ARE YOU OK???
- echo strtolower($txt);
- //输出 are you ok???
- ?>
27、strip_tags
strip_tags(string,allow),string表示指定的字符串,allow有示允许的标签
- <?php
- header('Content-type:text/html;charset=utf8');
- $str = "<script>alert('are you ok???')</script><br/><b>today is good day</b><i>haha</i>";
- echo strip_tags($str, '<b><i>');
- ?>
展示的效果
28、substr、substr_compare、substr_count、substr_replace
substr(string,start,length)主要用于截取指定位置的字符串string表示目标字符串,start表示指定的开始的位置,length表示截取的长度,如果length为负数,那么将会从末尾开始计算
substr_compare(string1,string2,startpos,length,case)主要用于比较两个字符串,string1与string2分别表示需要比较的字符串,startpos表示开始比较的位置,length表示比较的长度,case表示是否区分大小写默认的是false,返回三个结果,0为相等,>0或者<0;
substr_count(string,substring,start,length)计算指定字符在目标字符串中出现的次数,string表示目标字符串,substring表示需要搜索的字符串,start表示规定在字符串中何处开始搜索,length表示搜索的长度
substr_replace(string,replacement,start,length)把字符串的一部分替换为另一个字符串。string表示目标字符串,replacement表示需要替换的字符串,start表示开始的位置,length表示长度
- <?php
- header('Content-type:text/html;charset=utf8');
- $str1 = 'today is a good day';
- $str2 = 'today is a bad day';
- echo substr($str1, 11, -4);
- //输出 good
- var_dump(substr_compare($str1, $str2, 0, 4));
- //输出 int(0)
- var_dump(substr_count($str1, "o"));
- //输出 int(3)
- echo substr_replace($str1, 'not good', 11, -4);
- //输出 today is a not good day
- ?>
php 常用字符函数学习的更多相关文章
- ORACLE 常用字符函数
ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...
- mysql字符类型总结及常用字符函数
常用字符串函数: concat(s1,s2,s3..) 连接s1,s2,...sn为一个字符串 INSERT(str,x,y,instr)将字符串str从x位置开始,y个字符串替换为字符串 ...
- oracle常用字符函数
字符函数: concat:(字符连接函数) --字符连接 select concat('con','cat') from dual; select 'co'||'nc'||'at' from dual ...
- C语言string.h中常用字符函数介绍
原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...
- SQL Server 2008 R2 常用系统函数学习
/******************************************* * 聚合函数 *******************************************/ SEL ...
- oracle 常用sql字符函数介绍
常用字符函数介绍 1.ascii 返回与指定的字符对应的十进制数: SQL>select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') ...
- 原生JS研究:学习jquery源码,收集整理常用JS函数
原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...
- numpy常用函数学习
目录numpy常用函数学习点乘法线型预测线性拟合裁剪.压缩和累乘相关性多项式拟合提取符号数组杂项点乘法该方法为数学方法,但是在numpy使用的时候略坑.numpy的点乘为a.dot(b)或numpy. ...
- MYSQL初级学习笔记八:MySQL中常用的函数!(视频序号:初级_45-50)
知识点十:MySQL中的函数(45-50) 数学函数: 名称 描述 CEIL() 进一取整 FLOOR() 舍一取整 MOD 取余数(取摸) POWER() 幂运算 ROUND() 四舍五入 TRUN ...
随机推荐
- 【CentOS】Tomcat的安装
文件上传方式(推荐) # 解压 tar zxvf apache-tomcat-9.0.1.tar.gz # 进入bin目录启动 ./startup.sh # 进入log目录查看日志信息 tail -f ...
- mysql 原理 ~ DDL之mdl锁
一 简介: MDL锁 二 具体 1 MDL锁 1 增删查改 申请MDL读锁 2 ddl语句 1. 拿MDL写锁 2. 降级成MDL读锁 3. 真正做DDL ...
- RabbitMQ简单应用の消息持久化
消息应答: 消息应答默认是打开的(false) boolean autoAck = true;自动确认模式,表示一旦MQ将消息给到消费者,就会从内存中删除该条消息,这种情况下,如果杀死正在执行的消费者 ...
- SLAM数据集整理
New College Dataset :: Main / Downloads Autonomous Space Robotics Lab: Devon Island Rover Navigation ...
- $resource详解
$resource 首先添加$resource的引用 <script src="Scripts/angular.min.js"></script> < ...
- 【转】python之random模块分析(一)
[转]python之random模块分析(一) random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): ...
- delphi 的插件机制与自动更新
delphi 的插件机制与自动更新 : 1.https://download.csdn.net/download/cxp_2008/2226978 参考 2.https://download.cs ...
- centos配置小程序https和wss协议
用nginx做代理,conf.d下ssl.conf配置成https,wss在nginx.conf里http某块中配置 例代码如下: ssl.conf-->https server { liste ...
- Control算法相关
Control算法相关 添加新的control算法官方指导教程. 创建一个控制器: 在文件control_config中添加新控制器的配置信息: 注册新控制器. 如何添加新的CAN卡. Apollo中 ...
- ECC加密算法入门介绍 --- 看雪
标 题:ECC加密算法入门介绍 作 者:zmworm 时 间:2003/05/04 08:32pm 链 接:http://bbs.pediy.com ECC加密算法入门介绍 作者 :ZMWorm[C ...