PHP实战项目经常用到的几个函数

热度:4522020-10-09 01:03 收藏 0 点赞 0

做了那么多PHP项目,有几个函数每次用的时候都要百度一下,特别麻烦,我一直记不住。为此,我记录一下,下次我就直接在我自己的博客找方便多了。

  1. 字符串截取 substr

语法

substr(string,start,length)


参数描述
string必需。规定要返回其中一部分的字符串。
start

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

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

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

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

length

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

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

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


<?php
echo substr("Hello world",6);
?>

上面的截取中文会乱码!!!

高级自定义字符串截取 newstr 截取中文不会乱码!

/**
	字符截断,中文算2个字符
**/
function newstr($string, $length, $dot="...") {
	if(strlen($string) <= $length) {return $string;}
	$string = str_replace(array('&amp;', '&quot;', '&lt;', '&gt;' ,'&nbsp;'), array('&','"','<','>',''), $string);
	$strcut = '';$n = $tn = $noc = $noct = $nc = $tnc =0;
	while($n < strlen($string)) {
		$t = ord($string[$n]);
		if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
			$tn = 1; $n++; $noct++;
		} elseif(194 <= $t && $t <= 223) {
			$tn = 2; $n += 2; $noct += 2;
		} elseif(224 <= $t && $t <= 239) {
			$tn = 3; $n += 3; $noct += 2;
		} elseif(240 <= $t && $t <= 247) {
			$tn = 4; $n += 4; $noct += 2;
		} elseif(248 <= $t && $t <= 251) {
			$tn = 5; $n += 5; $noct += 2;
		} elseif($t == 252 || $t == 253) {
			$tn = 6; $n += 6; $noct += 2;
		} else {$n++;}
		if($noct >= $length){if($noct==0)$noc=$noct;if($nc==0)$nc=$n;if($tnc==0)$tnc=$tn;}
	}
	if($noct<=$length){return str_replace(array('&','"','<','>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $string);}
	if($noc > $length) {$nc -= $tnc;}
	$strcut = substr($string, 0, $nc);
	$strcut = str_replace(array('&','"','<','>'), array('&amp;', '&quot;', '&lt;', '&gt;'), $strcut);
	return $strcut.$dot;
}


2. 数组去重 array_unique

语法

array_unique(array)
参数描述
array必需。规定数组。
sortingtype

可选。规定如何比较数组元素/项目。可能的值:

  • SORT_STRING - 默认。把项目作为字符串来比较。

  • SORT_REGULAR - 把每一项按常规顺序排列(Standard ASCII,不改变类型)。

  • SORT_NUMERIC - 把每一项作为数字来处理。

  • SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

<?php
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));
?>

3. 数字补零 str_pad  sprintf

语法

str_pad(string,length,pad_string,pad_type)
参数描述
string必需。规定要填充的字符串。
length必需。规定新的字符串长度。如果该值小于字符串的原始长度,则不进行任何操作。
pad_string可选。规定供填充使用的字符串。默认是空白。
pad_type

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

可能的值:

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

  • STR_PAD_LEFT - 填充字符串的左侧。

  • STR_PAD_RIGHT - 填充字符串的右侧。默认。

<?php
#填充字符串的右侧,到 30 个字符的新长度:
$str = "Hello World";
echo str_pad($str,30,".");
//输出:Hello World...................
$num = '30';
echo str_pad($num,5,"0",STR_PAD_LEFT);
//输出:00030
?>

sprintf

# 用一个5位数的数字格式化后边的参数,如果不足5位就补零
echo sprintf("%05d",1);
// 00001
# 用一个小数点后最少三位不足三位补零,小数点前最少一位,不足一位补零的浮点数格式化后边的参数
echo sprintf("%01.3f",1);
// 1.000

4. 对数组进行key的升序降序  rsort sort

定义和用法

rsort() 函数对数值数组进行降序排序。


语法

rsort(array,sortingtype);


参数描述
array必需。规定要进行排序的数组。
sortingtype

可选。规定如何比较数组的元素/项目。可能的值:

  • 0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)

  • 1 = SORT_NUMERIC - 把每一项作为数字来处理。

  • 2 = SORT_STRING - 把每一项作为字符串来处理。

  • 3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

  • 4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。

  • 5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。


定义和用法

sort() 函数对索引数组进行升序排序。

注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。

如果成功则返回 TRUE,否则返回 FALSE。

语法

sort(array,sortingtype);
参数描述
array必需。规定要进行排序的数组。
sortingtype

可选。规定如何比较数组的元素/项目。可能的值:

  • 0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)

  • 1 = SORT_NUMERIC - 把每一项作为数字来处理。

  • 2 = SORT_STRING - 把每一项作为字符串来处理。

  • 3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

  • 4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。

  • 5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。

5. 输出文本的换行符  nl2br

定义和用法

nl2br() 函数在字符串中的每个新行(\n)之前插入 HTML 换行符(<br> 或 <br />)。


语法

nl2br(string,xhtml)
参数描述
string必需。规定要检查的字符串。
xhtml

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

  • TRUE- 默认。插入 <br />

  • FALSE - 插入 <br>

6. 数组去除空值 array_filter( )

定义和用法

array_filter() 函数用回调函数过滤数组中的值。

该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

语法

array_filter(array,callbackfunction);
参数描述
array必需。规定要过滤的数组。
callbackfunction必需。规定要使用的回调函数。


7. 隐藏手机号码中间4位

方法 1:

function hidtel($phone){

    $IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i',$phone); //固定电话

    if($IsWhat == 1){

        return preg_replace('/(0[0-9]{2,3}[\-]?[2-9])[0-9]{3,4}([0-9]{3}[\-]?[0-9]?)/i','$1****$2',$phone);

    }else{

        return  preg_replace('/(1[358]{1}[0-9])[0-9]{4}([0-9]{4})/i','$1****$2',$phone);

    }

}
方法 2:

$num = "13966778888"

$str = substr_replace($num,'****',3,4);


8. array_pop 删除数组最后一个元素

定义和用法

array_pop() 函数删除数组中的最后一个元素。

语法

array_pop(array)
参数描述
array必需。规定数组。
$a=array("red","green","blue");
array_pop($a);
print_r($a);

9. 计算内容字数

两个函数经常用到:mb_strlen 和 mb_strwidth

mb_strlen : 将中文英文都算作一个字符,如果真计算字数,那么用这个来计算。

mb_strwidth : 将中文算作2个字符,如果计算字节数,用这个来计算比较适合。

echo mb_strlen('这个字数','UTF-8');
echo mb_strwidth('这个字数','UTF-8');


暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

外卖天天领红包,饿了么,美团红包天天都有!

外卖天天领红包,饿了么,美团红...

最低每顿可省2元

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本