PHP常用字符串函数小结

最近面试被这个面到吐血,特地来fork一些。

来源:https://www.jb51.net/article/145084.htm

 

一、判断类型的函数

is_bool()    //判断是否为布尔型
is_float()   //判断是否为浮点型
is_real()    //同上
is_int()    //判断是否为整型
is_integer()  //同上
is_string()   //判断是否为字符串
is_object()   //判断是否为对象
is_array()   //判断是否为数组
is_null()    //判断是否为null
is_file()    //判断是否为文件
is_dir()    //判断是否为目录
is_numeric()  //判断是否为数字
is_nan()    //判断不是数字
is_resource()  //判断是否为资源类型
is_a($obj,$classname) //判断对象是否为类的实例//可用 if($obj instanceof Classname)

 

二、获取子串位置

strpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出现的数字位置。 
                      //如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。 如果是负数,搜索会从字符串结尾指定字符数开始。
stripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中首次出现的数字位置, 不区分大小写。 strrpos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出现的数字位置。 strripos($hs,$nd [,int $offset = 0 ]) //返回nd 在 hs 中最后一次出现的数字位置,不区分大小写。

$str = 'helloword!!!hello';
echo strpos($str,'hello',1); //12
echo strpos($str,'hello');  //0
echo strpos($str,'ll',-5);  //14

 

三、获取子串

substr($str,$start [,$length]); //获取子串
substr_compare($main_str,$str,$offset[,$length]); //子串比较 从offset处开始比较
substr_count($hs,$nd [,$offset=0 [,$length]]); //获取子串nd在hs中出现的次数
substr_replace($string,$replacement,$start [,$length]); //字符串子串替换//用$replacement替换掉$string从start开始长度为length的子串
strstr($hys,$nd [,bool $before_needle = false ]);//返回$nd在$hys 第一次出现的地方开始到字符串结束 为止的字符串//第三个参数如果为true 则返回$nd 之前的字符串
stristr($hys,$nd [,bool $before_needle = false ]); //同上,忽略大小写版本
strrchr($hys,$nd); //返回$nd在$hys最后一次出现的地方开始到字符串结束 为止的字符串//一般和 substr(strrchr($hys,$nd),strlen($nd)); 合用
strpbrk($haystack,$char_list);//从$char_list中依次匹配单个字符在$haystack中第一次出现的地方//到字符串结束的地方 的整个字符串
strtok($str,$token); //第一次使用 将字符串按分隔符$token进行分割
strtok($token);   //第二次使用eg.$string = "This is\tan example\nstring";/* 使用制表符和换行符作为分界符 */$tok = strtok($string, " \n\t");while ($tok !== false) {echo "Word=$tok<br />";$tok = strtok(" \n\t");}

 

四、字符串str_ 型函数

str_getcsv($str); //将csv文件字符串转换成一个数组
str_replace($search,$replace,$subject [,&$count]);//搜索并替换字符串//第四个参数被指定的话,将会赋值给他替换的次数
str_ireplace($search,$replace,$subject [,&$count]);//搜索并替换字符串//第四个参数被指定的话,将会赋值给他替换的次数 忽略大小写
str_shuffle(string $str);//随机打乱字符串
str_split($str [,$len=1]);//将字符串转换成一个数组//,每个数组单元的长度为$len

 

五、字符串长度

strlen($str); //字符串长度

 

六、翻转字符串

strrev(string $string);// 翻转字符串

 

七、mb_类型字符串函数

mb_类型字符串与上述字符串函数基本一样,
只是加多一个可选的字符编码参数,用法同上

 

八、字符串的相关操作

1、转换字符串类型

strval($str); //转换成字符串类型
floatval($str);//转换成浮点型
intval($str); //转换成整型

2、大小写转换

strtolower($str); //全部转换成小写
strtoupper($str); //全部转换成大写

3、字符串转时间戳

strtotime($str); //时间格式的字符串转换成整型时间戳//注意设置时区 否则会有 8小时误差

4、去除HTML 和 PHP 标记

strip_tags($str [,$tags]);//去除不含$tags里标签外的所有标签

5、ascii转数字 数字转ascii

chr(int $ascii); //数字转换成ascii
ord(string $str); //返回$str第一个字符的ascii值

6、json的编码与解码

json_encode($obj/$arr/$str...);//编码成json 格式的字符串
json_decode($jsonstr [,$assoc=true]); //解码成对象//当$assoc=true 时 返回数组 而非对象

7、换行转<br/>

1
nl2br($str); //字符串 $str 所有新行之前插入'<br/>'

8、数组转字符串,字符串转数组

1
2
implode($arr,$glue);//将一维数组转换为字符串
explode();//字符串转换为数组

9、千位分割格式化

1
2
3
4
5
6
string number_format ( float $number [, int $decimals = 0 ] )
string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )
 @param  $number 你要格式化的数字
     $decimals 要保留的小数位数
     $dec_point 指定小数点显示的字符
     $thousands_sep 指定千位分隔符显示的字符

10、去空格

1
2
3
trim(string $str [,string $charlist ]); //去左右字符
ltrim(string $str [,string $charlist ]); //去左字符
rtrim(string $str [,string $charlist ]); //去右字符

该函数删除 str 末端的空白字符并返回。

不使用第二个参数, rtrim() 仅删除以下字符: 
• " " (ASCII 32 (0x20)),普通空白符。 
• "\t" (ASCII 9 (0x09)),制表符。 
• "\n" (ASCII 10 (0x0A)),换行符。 
• "\r" (ASCII 13 (0x0D)),回车符。 
• "\0" (ASCII 0 (0x00)),NUL 空字节符。 
• "\x0B" (ASCII 11 (0x0B)),垂直制表符。 
过滤字符也可由 charlist 参数指定。一般要列出所有希望过滤的字符,
也可以使用 ".." 列出一个字符范围

11、转换字符串编码函数

1
2
3
iconv($in_charset, $out_charset, $str);
$in_charset输入字符集
$out_charset输出字符集

12、字符串加密函数

1
2
sha1($str);
md5($str);

13、字符串转义与反转义函数

1
2
3
4
5
6
addcslashes(string $str , string $charlist);//转义字符串中的特殊字符
        //eg. addcslashes($str,"\0..\37!@\177..\377");
              //转义ascii 中0-37、177-377中不含@符号的字符
  
stripcslashes($str) — 反转义addcslashes()函数转义处理过的字符串
 返回反转义后的字符串。可识别类似 C 语言的 \n,\r,... 八进制以及十六进制的描述

14、按格式返回数据

1
2
3
4
5
6
7
8
9
10
sprintf — 按照要求对数据进行返回,但是不输出
    可表示类型如下:
    string s
    integer d, u, c, o, x, X, b
    double g, G, e, E, f, F
    eg.
    $num = 5;
    $location = 'tree';
    $format = 'There are %d monkeys in the %s';
    echo sprintf($format, $num, $location);

转载于:https://www.cnblogs.com/izch/p/10702408.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/264245.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

醒来。。

很久没更新我的博客&#xff0c;缘由有二&#xff1a;其一&#xff0c;博客没人看&#xff0c;没有写下去的动力。其二&#xff1a;真的没啥东西可以写。。。 今天&#xff0c;一如既往地沉睡三小时后&#xff0c;醒了&#xff0c;还是带着无限的忧郁和惆怅&#xff0c;这次唯一…

斐波那契数列(fabnacci)java实现

斐波那契数列定义&#xff1a;From Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Fibonacci_number In mathematics, the Fibonacci numbers or Fibonacci sequence are the numbers in the following integer sequence:[2][3] or (often, in modern usage)…

计算机二级offic考试题库2017,2017年9月计算机二级MSOffice考试题「带答案」

2017年9月计算机二级MSOffice考试题「带答案」一、单选题1). 存储一个3232点的汉字字形码需用的字节数是( )。A.256B.128C.72D.16正确答案&#xff1a;B2). 无符号二进制整数101001转换成十进制整数等于( )。A.41B.43C.45D.39正确答案&#xff1a;A3). 一个教师讲授多门课程&am…

LiveQing直播点播存储流媒体服务-服务器并发性能及消耗带宽计算参考

LiveQing云端直播点播流媒体软件&#xff1a; 提供设备接入&#xff1b; RTMP推流服务、RTMP分发、HLS分发、HTTP-FLV分发&#xff1b; 云端录像、云端录像检索、云端录像点播、云端录像下载&#xff1b; RTMP转推、推流鉴权验证、推流信息统计、播放信息统计&#xff1b; 直播…

思考设计模式在自助终端软件上的应用 ——Observer(观察着)模式

主要思想&#xff1a;将各硬件模块作为观察者加入观察者队列&#xff0c;当机器状态改变时Notify所有观察者&#xff0c;各观察者根据消息类型做不同反应或不作反应。 下面贴出代码简单实现&#xff0c;希望引起圈内朋友的关注,起到抛砖引玉的效果。 下面两个类是两个基类.…

计算机考研新大纲,2020考研计算机新大纲考情分析

随着2020年408统考大纲的发布&#xff0c;我们可以看到&#xff0c;只字未改&#xff0c;这样对大家在准备408备考上可以松一口气&#xff0c;在之后10月份报名的时候可选率非常大。接下来我们来看下考试的目标&#xff0c;涵盖了计算机数据结构、计算机组成原理、操作系统和计…

Visual studio 打包

Visual studio 打包2009-08-07 11:171.打开要打包的“.lsn”文件&#xff0c;在“解决方案资源管理器”中随便打开一个窗口 2.菜单栏“文件”--->“添加”--->“新建项目” 3. 点击“项目类型”--->“其他项目类型”--->“安装和部署”&#xff0c;再在“模板”点击…

MySQL 性能优化的最佳20多条经验分享

当我们去设计数据库表结构&#xff0c;对操作数据库时&#xff08;尤其是查表时的SQL语句&#xff09;&#xff0c;我们都需要注意数据操作的性能。这里&#xff0c;我们不会讲过多的SQL语句的优化&#xff0c;而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧…

计算机音乐一次就好歌词,沈腾歌曲一次就好歌词

你是不是在找沈腾的一次就好的歌词&#xff1f;下面是学习啦!让小编我来告诉你关于一次就好的歌词的一些相关的资料吧&#xff0c;希望能对你有用!沈腾歌曲一次就好的歌词想看你笑 想和你闹想拥你入我怀抱上一秒红着脸在争吵下一秒转身就能和好不怕你哭 不怕你叫因为你是我的骄…

RabbitMQ(2) 一般介绍

RabbitMQ 即一个消息队列&#xff0c;主要是用来实现应用程序的异步和解耦&#xff0c;同时也能起到消息缓冲&#xff0c;消息分发的作用。 消息中间件在互联网公司的使用中越来越多&#xff0c;刚才还看到新闻阿里将RocketMQ捐献给了apache&#xff0c;当然了今天的主角还是讲…

Cisco 3550-EMI 交 换 机 配 置 教 程

目录&#xff1a;一、标识交换机二、设置口令及用户三、配置VTP&#xff08;Vlan中继协议&#xff09;四、配置中继线&#xff08;Trunk&#xff09;五、创建、描述Vlan及设置Vlan IP六、划分、描述及设置Vlan端口七、配置STP&#xff08;生成树协议&#xff09;八、启用Vlan间…

struct1标签使用方法笔记

1.<html:text property"" name"">其中property对应作用域变量的属性,name对应作用域里的变量,如果NAME没有,则property里第一个点号[这时至少要有一个点]之前的作为作用域变量.property最后生成了INPUT标签的NAME属性.所以property是必须的.2.<ht…

cop2000计算机组成原理,COP2000计算机组成原理实验系统

COP2000计算机组成原理实验系统3. 万用汇编器用户可以自定义指令/微指令系统&#xff0c;COP2000软件可以对用户自己定义的汇编助记符进行编译&#xff0c;自动生成代码/微代码。实验系统出厂时提供了完善的指令系统&#xff1a;算术运算&#xff1a;ADD、ADDC、SUB、SUBC 逻辑…

python--Websocket实现, 加密 sha1,base64

需要用到gevent-websocket包,这里我们用下图这个 一.websocket简单实现 ep1.py from geventwebsocket.handler import WebSocketHandler from gevent.pywsgi import WSGIServer from geventwebsocket.websocket import WebSocket # 引这个模块为了注释中显示提示用from flask i…

[工具] 解决sublime text运行javascript console无输出问题

1、使用nodeJS在sublime text 运行javascript 下载安装nodeJS在sublime text新建build system&#xff1a;tools->build system->new build system…&#xff0c;输入代码&#xff1a;{ "cmd": ["node", "$file"], "selector"…

计算机考试怎么复制粘贴文件,复制粘贴,教您电脑复制粘贴不能用了怎么解决...

操作电脑过程中经常需要复制、粘贴文字或图片&#xff0c;直接点击右键就可以操作的。但是使用过程中难免遇到一些故障问题导致右键复制粘贴功能无法使用&#xff0c;有些是软件引起的&#xff0c;有些是硬件引起的&#xff0c;怎么解决&#xff1f;下面&#xff0c;小编给大家…

第43周三

晚上下班等公交回去&#xff0c;今天效率还行&#xff0c;但没让培训让我更清醒自己目前在最高领导心中的印象&#xff0c;让我必须更清醒思考自己未来的出路&#xff0c;上午完成了产品需求初稿&#xff0c;下午搭建了总体设计框架&#xff0c;晚上看了几篇前端面试题&#xf…

为什么而设计

当然是为实现功能而设计, 这句话没错. 但是还不够, 针对具体的应用场合, 应该采取不同的设计策略. 例如GUI Client程序, 必须重点注意用户的体验, 为提高易用性而设计 而一般后台应用程序, 就必须在高性能和可靠性方面加强设计 只创建一次的对象, 我们不必在乎其构造时间, 而频…

认识因特网络(小学计算机课件),小学信息技术认识因特网ppt课件.ppt

《小学信息技术认识因特网ppt课件.ppt》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《小学信息技术认识因特网ppt课件.ppt(9页珍藏版)》请在人人文库网上搜索。1、1.你们知道从什么上获得新闻最新最快&#xff1f; 2.你们知道什么样的信件传的最快&#xff1f; 3.你…

delphi基本语法

//delphi中exit,abort,break,continue 的区别exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,while, repeat等循环体continue: 结束循环内的本次处理,继续从循环体的开始位置继续执行Exit 是跳出当前代码块&#xff0c;也就是当前函…