顶部导航开始 -->

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

学习目标

  • 1、掌握常用的字符串函数

  • 2、掌握常用的时间日期函数

如果需要对字符串进行复杂操作,则需要借助正则表达式来操作。


一、通用函数

exit(string $s)和die(string $s),两个函数终止程序,并输出参数内容;


二、字符串函数

下面的函数处理的数组,一般都是一维数组,不会处理二维数组。

1、把字符串打散为数组

   array explode(string $separator, string $string [, int $limit]) 赋值传值,不会影响字符本身。

自学php博客

2、把数组元素组合为字符串

   string implode(string $separator, array $array)

参数

描述

separator

可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。

array

必需。要组合为字符串的数组。


3、将字符串用 md5 算法加密,默认返回一个长度为32的字符串,(加密算法不可逆。)

   string md5(string $str[,bool $raw=false])(加密会自动输出加密的结果)

参数

描述

str

必需。规定要计算的字符串。

raw

可选。规定十六进制或二进制输出格式:

TRUE - 原始 16 字符二进制格式

FALSE - 默认。32 字符十六进制数


4、在字符串中的 换行(\n)之前插入换行符(<br />)

   string nl2br(string $string[, bool $xhtml=true])

在文本里面\n是换行操作,是对用户隐藏的,浏览器读取的。敲换行的时候,系统自动生成的\n,但是里浏览器认的换行是<br />,没有br,就是一个行,所以需要nl2br()函数,在\n前面加上换行;

如果字符串里面有\n,并且希望它能起到换行作用的,必须要用双引号,不能用单引号,否则会原样输出,不会解析。

参数

描述

string

必需。规定要检查的字符串。

xhtml

可选。布尔值,表示是否使用兼容 XHTML 换行:

TRUE- 默认。插入 <br />

FALSE - 插入 <br>


5、把字符串填充为指定的长度

   string str_pad(string $str, int $len[, string $pad_string, pad_type])

常用的是向左扩充,如单号00001,前面扩充

描述

string

必需。规定要填充的字符串。

length

必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。

pad_string

可选。规定供填充使用的字符串。默认是空白。

pad_type

可选。规定填充字符串的哪边。

可能的值:

STR_PAD_BOTH - 填充字符串的两侧。如果不是偶数,则右侧获得额外的填充。

STR_PAD_LEFT - 填充字符串的左侧。

STR_PAD_RIGHT - 填充字符串的右侧。默认。 (这个参数是常量,不要加引号)


6、将 字符串S 中的 子字符串A,用 字符串B 代替

   string str_replace(string $find, string $replace, string $str[,int $count])

参数

描述

find

必需。规定要查找的值。(可以是一个数组,定义要替换哪些字符串)

replace

必需。规定替换 find 中的值的值。(可以是一个数组)

string

必需。规定被搜索的字符串。

count

可选。对替换数进行计数的变量。(记录一共替换了几次)

<?php

    $url='www.taobao.jd.dangdang.com';

    $arr=array('taobao','dangdang');

    $arr1=array('tb','dd');

    $arr2=array('tb');

    $url=str_replace($arr,'jd','$url');//$url='www.jd.jd.jd.com';

    $url=($arr,$arr1,$url);//一一对应进行替换,$url='www.tb.jd.dd.com';

    $url=($arr,$arr2,$url);//对应的元素不存在就替换为空,$url='www.tb.jd.com';

?>



7、把字符串分割为数组

   array str_split(string $string, int $len)(不要用来分割中文)

处理分割字符串的时候,中英文以及编码格式是不同的。

默认情况下,一个英文字符就是一个

utf_8条件下,一个中文占用3个字符,gbk条件下,一个中文占用2个字符

$str='张三';

str_split($str);会分割出6个元素的数组,str_split($str,3);可以正常分割成两个元素的数组;但是要保证只有中文的内容才可以,中文的汉字和符号都是占3个字符在utf_8中。

参数

描述

string

必需。规定要分割的字符串。

length

可选。规定每个数组元素的长度。默认是 1。


8、查找字符串在另一字符串中第一次出现的位置

   int stripos(string $str, string $find[, int $start]) (不区分大小写) 

   int strpos(string $str, string $find[, int $start]) (区分大小写)

编程中,数数是从0开始算。

参数

描述

string

必需。规定要搜索的字符串。

find

必需。规定要查找的字符。

start

可选。规定开始搜索的位置。

<?php

//$arr=array('org','com','net','.com.cn');

//$url

$str='www.chuangen.com';

$int=strpos($str,'.');

echo $int;

?>输出的结果是3,出现在第三位

因为第一位是0,不能直接用$int做判断,因为0和false是不相等的,所以要用if($int!==false){echo '找到了';}else{echo '没找到';}


9、查找字符串在另一字符串中最后一次出现的位置 

   int strripos(string $str, string $find[, int $start]) (不区分大小写) 

   int strrpos(string $str, string $find[, int $start]) (区分大小写)

参数

描述

string

必需。规定要搜索的字符串。

find

必需。规定要查找的字符。

start

可选。规定开始搜索的位置。


10、计算字符串的长度(返回的长度值是字节,英文一个是一个字节,utf_8汉字和符号是3个字节)

    int strlen(string $string)

参数

描述

string

必需。规定要检查的字符串。


11、把字符串转换为小写 

    string strtolower(string $string) 

    把字符串转换为大写

    string strtoupper(string $string)

参数

描述

string

必需。规定要转换的字符串。

英文字母首字母大写函数:ucfirst(string $str);


12、截取字符串 string substr(string $string, $start[, $length])

$start和$length 都是int型的

按照字节截取字符,适合英文截取

参数

描述

string

必需。原始的字符串。

start

必需。规定在字符串的何处开始。

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾开始的指定位置开始

0 - 在字符串中的第一个字符处开始

length

可选。规定被返回字符串的长度。默认是直到字符串的结尾。

正数 - 从 start 参数所在的位置返回的长度

负数 - 从字符串末端返回的长度

第一种用法取出值:

$url='www.baidu.com';

$tmp=explode($url);

echo array_pop($tmp);//可以输出最后一个元素,array_pop(),删除数组最后一个元素并返回删除的内容

$count=count($url) echo $tmp[$count-1];//也可以输出最后一个元素

第二种用法删除内容

$str='a,b,c,1,2,23,56,67,';

$str=substr($str,0,-4);

echo $str;


13、中文字符串截取、编码转换 string mb_substr(string $string, int $start[, int $length],'utf-8')

mb_substr不是php源生的代码,是依赖于扩展包的,需要php.ini中开启";extension=php_mbstring.dll"。

参数

描述

string

必需。原始的字符串。

start

必需。规定在字符串的何处开始。

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾开始的指定位置开始

0 - 在字符串中的第一个字符处开始

length

可选。规定被返回字符串的长度。默认是直到字符串的结尾。

正数 - 从 start 参数所在的位置返回的长度

负数 - 从字符串末端返回的长度


14、转换字符串编码 

    string iconv(string $in_charset, string $out_charset, string $str)

参数

描述

in_charset

必需。原始编码。

out_charset

必需。转换后的编码。

string

必需。被转换的字符串

如果浏览器设置gbk显示:

$str='你好,世界!';

iconv('utf-8','gbk',$str);这样设置就不会乱码。

可以用于新闻采集系统。有的网站是gbk、有的网站是utf-8格式,我们要把采集到的信息转化为utf-8格式,存到我们的磁盘,然后就可以正常对外显示。


15、去除字符串首尾的指定字符,$char 默认为空格 

string trim(string $str[, string $char])    //两边 

string ltrim(string $str[, string $char])    //左边 

string rtrim(string $str[, string $char])    //右边

参数

描述

str

必需。要处理的字符串。

char

必需。要去除的字符。

$str='12,23,34,45,56,67,';

trim($str);直接就可以去掉后面的逗号。

该函数常用于登录和注册。去除用户注册时,用户名里面的空格。



16、数字格式化 

string number_format(number $num, int $decimals, string $point, string $separator)

给财务的数据需要千分位添加逗号。

注意:返回值是一个字符串,而不是一个数字了。

参数

描述

num

必需。要格式化的数字。

如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。

decimals

可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。(小数点后的数字是四舍五入)

point

可选。规定用作小数点的字符串。(规定小数点用什么表示)

separator

可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xxx" 仅输出 "x"。

注释:如果设置了该参数,那么所有其他参数都是必需的。(规定用什么作为千分位的分割)

该函数要么给两个参数,要么就是四个全给。如果只给了第三个,会报错。通常只用前面两个参数。


课堂补充点:

在数据库中

$a=10;

$b=3;

$c=$a/$b;

echo $c*$b;//要注意的是,$c*$b不等于10了,而是一个无限的小数。



自学php博客
请先登陆后发表评论
  • 最新评论
  • 总共0条评论
  • © 2014-2016 zixuephp.cn 版权所有
  • ICP证:皖ICP备16012107号
  • 联系邮箱:510082587@qq.com
  • 交流请加微信:weibobf2899 或扫下方二维码