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 常用字符函数学习的更多相关文章

  1. ORACLE 常用字符函数

    ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...

  2. mysql字符类型总结及常用字符函数

    常用字符串函数: concat(s1,s2,s3..)       连接s1,s2,...sn为一个字符串 INSERT(str,x,y,instr)将字符串str从x位置开始,y个字符串替换为字符串 ...

  3. oracle常用字符函数

    字符函数: concat:(字符连接函数) --字符连接 select concat('con','cat') from dual; select 'co'||'nc'||'at' from dual ...

  4. C语言string.h中常用字符函数介绍

    原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...

  5. SQL Server 2008 R2 常用系统函数学习

    /******************************************* * 聚合函数 *******************************************/ SEL ...

  6. oracle 常用sql字符函数介绍

    常用字符函数介绍 1.ascii 返回与指定的字符对应的十进制数: SQL>select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') ...

  7. 原生JS研究:学习jquery源码,收集整理常用JS函数

    原生JS研究:学习jquery源码,收集整理常用JS函数: 1. JS获取原生class(getElementsByClass) 转自:http://blog.csdn.net/kongjiea/ar ...

  8. numpy常用函数学习

    目录numpy常用函数学习点乘法线型预测线性拟合裁剪.压缩和累乘相关性多项式拟合提取符号数组杂项点乘法该方法为数学方法,但是在numpy使用的时候略坑.numpy的点乘为a.dot(b)或numpy. ...

  9. MYSQL初级学习笔记八:MySQL中常用的函数!(视频序号:初级_45-50)

    知识点十:MySQL中的函数(45-50) 数学函数: 名称 描述 CEIL() 进一取整 FLOOR() 舍一取整 MOD 取余数(取摸) POWER() 幂运算 ROUND() 四舍五入 TRUN ...

随机推荐

  1. sql常用问题(一)

    一.sql要掌握 1.sum select  sum(score) from table 2.group select name, sum(score) from table group by 3.a ...

  2. mysql 架构 ~ MHA 总揽

    一 简介:MHA相关二 版本 mha0.56 mha0.57 mha0.58三 切换流程   0 主库已不可达   阶段一      1 从集群选出新主,根据新主同步的binlog信息进行拷贝binl ...

  3. Centos7 nginx报错403 forbidden

    参考链接:http://www.cnblogs.com/chinway/archive/2017/08/14/7356239.html 因为安全性的考虑这个也是默认会出现的错误,因为SELinux的存 ...

  4. Android程序破解思路

    Android程序的一般分析与破解流程 1.如何寻找突破口是分析一个程序的关键.错误提示信息左右一般是程序验证逻辑的核心代码. 2.错误提示是android程序的字符串资源,字符串有可能硬编码到源码中 ...

  5. super和this的区别

    this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法.super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法, ...

  6. pytroch 0.3 到 0.4版本迁移资料mark

    搜了一堆,还是官方资料给力,一份中文,一份英文,maek一下 https://www.pytorchtutorial.com/pytorch-0-4-0-migration-guide/ https: ...

  7. 20165325 预备作业3 Linux安装及学习

    Linux安装及学习 一.VirtualBox和Ubuntu安装 问题一:虚拟机中Ubuntu的版本 在设置虚拟机的操作系统的版本时,我发现我的电脑只能设置32-bit的Ubuntu版本.教程上选用了 ...

  8. 使用Boost Regex 的regex_search进行遍历搜索

    在regex_search函数中,会将找到的第一个匹配结果保存到一个smatch类中. 然而如果搜索字符串中有多个匹配结果,则需要自己实现了. 在smatch中,有两个成员,官方文档如下: itera ...

  9. 设计模式C++学习笔记之十九(State状态模式)

      19.1.解释 概念:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类. main(),客户 CLiftState,电梯状态抽象类 CCloseingState,电梯门关闭 ...

  10. PostgreSQL安装和创建用户和创建数据库

    一.安装 可以参考postgresql官网安装教程:https://www.postgresql.org/download/linux/redhat/ Centos 6 安装postgresql 10 ...