当前位置:首页 » 编程语言 » php数字函数

php数字函数

发布时间: 2023-06-29 03:18:00

A. php 找个能在字符串中取得数字的函数

给你量身写了个函数,应该能满足你的需求

functionstrint($str){
if($str){
preg_match("/d+/is",$str,$v);
}
$StrInt=@$v[0];
if($StrInt){
return$StrInt;
}else{
return$str;
}
}

B. PHP的常用系统函数有哪些

PHP自带了大量的系统函数,使用这些函数可以完成大部分的任务。常用的有数学运算函数和日期时间函数。

1.数学运算函数:

数学运算是程序中最常执行的功能之一,PHP提供了很多系统函数实现运算功能,无须安装、编译和配置便可以直接使用。下表列出了常用的数学函数:

函数名称

功能描述

函数名称

功能描述

abs()

绝对值

is_finite()

判断是否为有限值

acos()

反余弦

is_infinite()

判断是否为无限值

acosh()

反双曲余弦

is_nan()

判断是否为合法数值

asin()

反正弦

lcg_value()

组合线性同余发生器

asinh()

反双曲正弦

log10()

以10为底的对数

atan2()

两个参数的反正切

log()

自然对数

atan()

反正切

max()

最大值

atanh()

反双曲正切

min()

最小值

base_convert()

在任意进制之间转换数字

mt_getrandmax()

显示随机数的最大可能值

bindec()

二进制转换为十进制

mt_rand()

生成更好的随机数

ceil()

进一法取整

mt_sran()

播下一个更好随机数种子

cos()

余弦

octdec()

八进制转换为十进制

cosh()

双曲余弦

pi()

圆周率

decbin()

十进制转换为二进制

pow()

指数表达式

dechex()

十进制转换为十六进制

rad2deg()

将弧度转换为相应的角度值

decoct()

十进制转换为八进制

rand()

产生一个随机数

deg2rad()

将角度转换为弧度

round()

对浮点数四舍五入

exp()

计算e的指数

sin()

正弦

floor()

舍去法取整

sinh()

双曲正弦

fmod()

返回除法的浮点数余数

sqrt()

平方根

getrandmax()

显示随机数最大的可能值

srand()

播下随机数发生器种子

hexdec()

十六进制转换为十进制

tan()

正切

hypot()

计算直角三角形的斜边长度

tanh()

双曲正切

注意:这些数学函数仅能处理计算机中integer和float范围的值。
示例:产生随机密码的的函数
function CreatePassword($length=6) //生成密码函数,默认6位
{
$dictionary=””; //密码字典
$maxChar=strlen($dictionary); //获取字典长度
$password=””;
for($i=0; $i<$length; $i++) //随机生成每一位
{
$password.=$dictionary[rand(0, $maxChar)]; //产生随机数,再从字典取字母
}
return $password;
}

2.日期和时间运算:

PHP提供了丰富的日期和时间方面运算的函数。

1)UNIX时间戳:

时间戳(Timestamp)是源于UNIX系统的时间表示方法,是指从1970年1月1日(00:00:00GMT)起到现在所经过的秒数,因此也称为UNIX时间戳。
在PHP中使用时间戳的最简单方式就是调用time()函数,time()函数可以根据当前时间返回一个时间戳的表示法。示例:
echo “当前时间戳为:”.time();

2)日期函数:

PHP提供的一些常用的日期函数。
①date()函数:
date()函数用于格式化一个本地日期和时间。语法格式为:
string date(string $format [, int $timestamp])
返回将整数$timestamp按照$format给定格式而产生的字符串。其中,$timestamp参数是可选的,如果没有给出时间戳,则使用本地当前时间,即time()。
下表列出了$format格式化字符串参数的说明:



说明

返回值

D

月份中的第几天,有前导零的2位数字

01到31

D

星期中的第几天,文本表示,3个字母

Mon到Sun

J

月份中的第几天,没有前导零

1到31

L

L的小写字母,表示星期几的完整文本格式

Sunday到Saturday

N

数字表示的星期中的第几天

1(表示星期一)到7(表示星期天)

S

每月天数后面的英文后缀,2个字符

st,nd,rd或th。可以和j一起用

W

星期中的第几天,数字表示

0(表示星期天)到6(表示星期六)

Z

年份中的第几天

0到366

W

年份中的第几周,每周从星期一开始

例如:42(当年的第42周)

F

月份,完整的文本格式,例如January

January到December

M

数字表示的月份,有前导零

01到12

M

3个字母缩写表示的月份

Jan到Dec

N

数字表示的月份,没有前导零

1到12

t

给定月份所应有的天数

28到31

L

是否为闰年

如果是闰年为1,否则为0

o

年份数字

例如:2016

Y

4位数字完整表示的年份

例如:2016

y

2位数字表示的年份

例如:16

a

小写的上午和下午值

am或pm

A

大写的上午和下午值

AM或PM

g

小时,12小时格式,没有前导零

1到12

G

小时,24小时格式,没有前导零

0到23

h

小时,12小时格式,有前导零

01到12

H

小时,24小时格式,有前导零

00到23

i

有前导零的分钟数

00到59

s

秒数,有前导零

00到59

e

时区标识

例如:UTC,GMT,Atlantic/Azores

I

是否为夏令时

如果是夏令时为1,否则为0

O

与格林威治时间相差的小时数

例如:+0200

Z

时差偏移量的秒数

-43200到43200

c

ISO8601格式的日期

2011-05-12T15:19:21+00:00

r

RFC822格式的日期

例如:Thu, 21 Dec 2011 06:07:08 +0200

U

从January 1 1970 00:00:00开始至今的秒数

与time()函数相同

示例:
$today=date(“m/d/y”); //结果为:07/19/12
$today=date(“F j, Y, g:i a”); //结果为:July 19, 2012, 9:07 am
$today=date(“Y年n月j日”); //结果为:2012年7月19日
$today=date(“Y-m-d H:i:s”); //结果为:2012-07-19 09:07:32
$today=date(“D M j G:i:s T Y”); //结果为:Thu Jul 19 9:07:32 CST 2012
$today=date(‘i t i s t h e jS d a y’); //结果为:07 31 07 32 31 09 Asia/Shanghai 19th 19 am 12
$today=date(‘\i\t \i\s \t\h\e jS \d\a\y’); //结果为:it is the 19th day
$today=date(‘H:m:s \m \i\s\ \m\o \h’); //结果为:09:07:32 m is month
②gmdate()函数:
gmdate()函数实现与date()函数相同的功能,不同的是gmdate()函数返回的时间是格林威治标准时间(GMT)。语法格式为:
string gmdate(string $format [, int $timestamp])
③getdate()函数:
getdate()函数用于获取指定的日期和时间信息。语法格式为:
array getdate([int $timestamp])
如果没有指定时间戳$timestamp,则使用系统当前的本地时间。getdate()函数返回一个数组,数组中的每个元素代表日期和时间中的特定组成部分。下表列出了返回数组中键名的说明:

键名

说明

返回值例子

seconds

秒的数字表示

0到59

minutes

分钟的数字表示

0到59

hours

小时的数字表示

0到23

mday

月份中的第几天的数字表示

1到31

wday

星期中的第几天的数字表示

0(表示星期天)到6(表示星期六)

mon

月份的数字表示

1到12

year

4位数字表示的完整年份

例如:2016

yday

一年中的第几天的数字表示

0到365

weekday

星期几的完整文本表示

Sunday到Saturday

month

月份的完整的文本表示

January到December

0

自从UNIX纪元开始至今的秒数

和time()的返回值类似,是一个时间戳

示例:
<?php
$today=getdate();
print_r($today);
printf(“今天是%s年%s月%s日 星期%s \n”, $today[“year”], $today[“mon”], $today[“mday”], $today[“wday”]);
printf(“现在时间是%s时%s分%s秒”, $today[“hours”], $today[“minutes”], $today[“seconds”]);
?>
执行后的结果为:
Arrar
(
[seconds]=>15
[minutes]=>37
[hours]=>9
[mday]=>19
[wday]=>4
[mon]=>7
[year]=>2016
[yday]=>200
[weekday]=>Thursday
[month]=>July
[0]=>1342661835
)
今天是2016年7月19日 星期4
现在时间是 9时37分15秒
④checkdate()函数:
checkdate()函数用于检查一个日期是否有效,有效则返回true,否则返回false。语法格式为:
bool checkdate(int $month, int $day, int $year)
当满足如下条件时,checkdate()函数将认为是一个有效的日期:
·$year的值是从1到32767
·$month的值是从1到12
·$day的值在给定的$month所应该具有的天数范围之内,包括闰年情况
示例:
echo checkdate(2,29,2012)?”有效”:”无效”;

2)时间函数:

①time()函数:
time()函数使用方法非常简单,没有参数调用后返回当前日期和时间的UNIX时间戳。语法格式为:
int time(void)
示例:
$next50day=time()+(50*24*60*60); //计算50天以后的日期
②mktime()函数:
mktime()函数的作用与time()函数相同,都可以返回一个时间戳表示的时间。不同的是,在mktime()函数中可以指定具体的日期和时间。语法格式为:
int mktime([int $hour],[int $minute],[int $second],[int $month], [int $day],[int $year])
上述参数列表从右向左顺序省略,任何省略的参数会被设置为本地日期和时间的当前值。如果指定的时间无法表示,则返回false。mktime()函数在做日期计算和验证方面很有用。示例:
$day1=mktime(0,0,0,12,25,2012);
$day2=mktime(0,0,0,10,1,2012);
$days=($day1-$day2)/(24*60*60); //根据时间戳计算出相差的天数
③strtotime()函数:
strtotime()函数用于将可阅读的英文日期/时间字符串转换成UNIX时间戳。语法格式:
int strtotime(string $time[, int $now])
其中,$time参数表示要被转换的字符串,$now表示计算返回值的时间戳。如果没有提供$now参数,将使用系统的当前时间。strtotime()函数成功时返回时间戳,否则返回false。
④microtime()函数:
microtime()函数调用后将返回当前UNIX时间戳和微秒数。语法格式为:
mixed microtime([bool $get_as_float])
这里的可选参数$get_as_float是一个布尔值,如果为true将返回一个浮点数。默认不带参数时将以“msec sec”格式返回一个字符串,其中msec是微秒部分,sec是UNIX时间戳。

C. php中如何使用随机函数rand()生成一个数字验证码

如果要生成四位数字的验证码,则可以用函数:

$srand = rand(1000,9999);

会生成在1000到9999之间的随机数字,如果要生成更多位数的数字,可以更改最小、最大值。

D. PHP-bc函数及其应用详解

bcadd —— 两个任意精度数字的加法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcadd ( string $num1 , string $num2 , ?int $scale = null ): string

注:对 num1 和 num2 求和。

参数:

num1 — 左操作数,字符串类型。

num2 — 右操作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以字符串返回两个操作数求和之后的结果。

范例:

bcsub —— 两个任意精度数字的减法 (PHP 4, PHP 5, PHP 7, PHP 8)

bcsub ( string $num1 , string $num2 , ?int $scale = null ): string

注: num1 减去 num2 。

参数:

num1 — 左操作数,字符串类型。

num2 — 右操作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bcmul —— 两个任意精度数字乘法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcmul ( string $num1 , string $num2 , ?int $scale = null ): string

注: num1 乘以 num2 。

参数:

num1 — 左操作数,字符串类型。

num2 — 右操作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bcp —— 两个任意精度的数字除法计算 (PHP 4, PHP 5, PHP 7, PHP 8)

bcp ( string $num1 , string $num2 , ?int $scale = null ): string

注: num1 除以 num2 。

参数:

num1 — 左操作数,字符串类型。

num2 — 右操作数,字符串类型。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。 现在 scale 可以为 null。

返回值: 以 string 类型返回减法之后的结果。

范例:

bccomp —— 比较两个任意精度的数字 (PHP 4, PHP 5, PHP 7, PHP 8)

bccomp ( string $num1 , string $num2 , ?int $scale = null ): int

注: 比较 num1 和 num2 , 并且返回整型数字的结果。

参数:

num1 — 左边的运算数,是一个字符串。

num2 — 右边的运算数,是一个字符串。

scale — 可选的 scale 参数被用作设置指示数字, 在使用来作比较的小数点部分。

返回值: 两个数相等时返回 0; num1 比 num2 小时返回 -1; 其他则返回 1。现在 scale 可以为 null。

范例:

bcmod —— 任意精度数字取模 (PHP 4, PHP 5, PHP 7, PHP 8)

bcmod ( string $num1 , string $num2 , ?int $scale = null ): string

注: 对 num1 使用 num2 取模。 除非 num2 是零,否则结果必定和 num1 有相同的符号。

参数:

num1 — string 类型的被除数。

num2 — string 类型的除数。

scale — 现在 scale 可以为 null。

返回值: 返回字符串类型取模后的结果,如果 num2 为 0 则返回 null。

范例:

bcpow—— 任意精度数字的乘方 (PHP 4, PHP 5, PHP 7, PHP 8)

bcpow ( string $num , string $exponent , ?int $scale = null ): string

注: num 的 exponent 次方运算。

参数:

num — string 类型的底数。

exponent — string 类型的指数。 如果指数不是整数,将被截断。 指数的有效范围取决于平台,但起码支持 -2147483648 到 2147483647 的范围。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。

返回值: 返回字符串类型的结果。

范例:

bcpowmod —— 先取次方然后 取模 。 (PHP 5, PHP 7, PHP 8)

bcpowmod ( string $num , string $exponent , string $molus , ?int $scale = null ): string

注: 先取次方然后取模。

参数:

base — 左操作数。它是一个字符串类型的参数。

exponent — string 类型的指数。 指数的正确操作数。

molus — string 类型的 参 数。 接受表示模数的操作数。

scale — 一个整数类型参数。它说明 ( base exponent %mod ) 结果中小数点后的位数。其默认值为 0。

返回值: 该函数将结果作为字符串返回。或者,如果模数为 0 或指数为负,则返回 False。

范例:

bcscale —— 设置/获取所有 bc math 函数的默认小数点保留位数 (PHP 4, PHP 5, PHP 7, PHP 8)

bcscale ( int $scale ): int

设置所有 bc math 函数在未设定情况下的小数点保留位数。

bcscale ( null $scale = null ): int

注: 获取当前的小数点保留位数。

参数:

scale — 小数点保留位数。

返回值: 设置的时候,返回之前的小数点保留位数。否则就是返回当前的位数。

范例:

bcsqrt —— 任意精度数字的二次方根 (PHP 4, PHP 5, PHP 7, PHP 8)

bcsqrt ( string $num , ?int $scale = null ): string

注: 返回 num 的二次方根。

参数:

num — string 类型的操作数 。

scale — 此可选参数用于设置结果中小数点后的小数位数。也可通过使用 bcscale() 来设置全局默认的小数位数,用于所有函数。如果未设置,则默认为 0。

返回值: 以 string 类型返回二次方根的结果,如果 num 是负数则返回 null。

范例:

E. 求一个 php 数字小写转为大写的函数(在线等,谢谢)

PHP把阿拉伯数字转换成中文,需要定义一个转换的算法

算法实例:

<?php
/将数字转换为汉字,比如1210转换为一千二百一十
$num="842105580";//九位数
functiondel0($num)//去掉数字段前面的0
{
return"".intval($num);
}
functionn2c($x)//单个数字变汉字
{
$arr_n=array("零","一","二","三","四","五","六","七","八","九","十");
return$arr_n[$x];
}
functionnum_r($abcd)//读取数值(4位)
{
$arr=array();
$str="";//读取后的汉字数值
$flag=0;//该位是否为零
$flag_end=1;//是否以“零”结尾
$size_r=strlen($abcd);
for($i=0;$i<$size_r;$i++)
{
$arr[$i]=$abcd{$i};
}
$arrlen=count($arr);
for($j=0;$j<$arrlen;$j++)
{
$ch=n2c($arr[$arrlen-1-$j]);//从后向前转汉字
echo$ch;
echo"";
if($ch=="零"&&$flag==0){//如果是第一个零
$flag=1;//该位为零
$str=$ch.$str;//加入汉字数值字符串
continue;
}elseif($ch=="零"){//如果不是第一个零了
continue;
}
$flag=0;//该位不是零
switch($j){
case0:$str=$ch;$flag_end=0;break;//第一位(末尾),没有以“零”结尾
case1:$str=$ch."十".$str;break;//第二位
case2:$str=$ch."百".$str;break;//第三位
case3:$str=$ch."千".$str;break;//第四位
}
}
if($flag_end==1)//如果以“零”结尾
{
mb_internal_encoding("UTF-8");
$str=mb_substr($str,0,mb_strlen($str)-1);//把“零”去掉
}
return$str;
}
functionnum2ch($num)//整体读取转换
{
$num_real=del0($num);//去掉前面的“0”
$numlen=strlen($num_real);
echo"numlen=".$numlen."";
if($numlen>=9)//如果满九位,读取“亿”位
{
$y=substr($num_real,-9,1);
//echo$y;
$wsbq=substr($num_real,-8,4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c=num_r(del0($y))."亿";
}elseif($numlen<=8&&$numlen>=5)//如果大于等于“万”
{
$wsbq=substr($num_real,0,$numlen-4);
$gsbq=substr($num_real,-4);
$a=num_r(del0($gsbq));
$b=num_r(del0($wsbq))."万";
$c="";
}elseif($numlen<=4)//如果小于等于“千”
{
$gsbq=substr($num_real,-$numlen);
$a=num_r(del0($gsbq));
$b="";
$c="";
}
$ch_num=$c.$b.$a;
return$ch_num;
}
echo$num."";//数字
echonum2ch($num);//汉字
echo"";
echonum2ch("1240");
?>

F. PHP取整数函数常用的四种方法小结

ceil

进一法取整
说明
float
ceil
(
float
value
)
返回不小于
value
的下一个整数,value
如果有小数部分则进一位。ceil()
返回的类型仍然是
float,因为
float
值的范围通常比
integer
要大。
例子
1.
ceil()
例子
复制代码
代码如下:
<?php
echo
ceil(4.3);
//
5
echo
ceil(9.999);
//
10
?>
floor

舍去法取整
说明
float
floor
(
float
value
)
返回不大于
value
的下一个整数,将
value
的小数部分舍去取整。floor()
返回的类型仍然是
float,因为
float
值的范围通常比
integer
要大。
例子
1.
floor()
例子
复制代码
代码如下:
<?php
echo
floor(4.3);
//
4
echo
floor(9.999);
//
9
?>
round

对浮点数进行四舍五入
说明
float
round
(
float
val
[,
int
precision]
)
返回将
val
根据指定精度
precision(十进制小数点后数字的数目)进行四舍五入的结果。precision
也可以是负数或零(默认值)。
例子
1.
round()
例子
复制代码
代码如下:
<?php
echo
round(3.4);
//
3
echo
round(3.5);
//
4
echo
round(3.6);
//
4
echo
round(3.6,
0);
//
4
echo
round(1.95583,
2);
//
1.96
echo
round(1241757,
-3);
//
1242000
echo
round(5.045,
2);
//
5.05
echo
round(5.055,
2);
//
5.06
?>
intval—对变数转成整数型态
例子intval()
复制代码
代码如下:
<?php
echo
intval(4.3);
//4
echo
intval(4.6);
//
4
?>

热点内容
免费ftp服务软件 发布:2025-02-11 15:58:06 浏览:865
大樱桃建园为什么要配置授粉树 发布:2025-02-11 15:58:00 浏览:628
五菱宏光s顶配有哪些配置 发布:2025-02-11 15:50:57 浏览:286
华为8加128配置有哪些 发布:2025-02-11 15:48:20 浏览:579
压缩机三转子 发布:2025-02-11 15:45:54 浏览:827
linux操作系统shell 发布:2025-02-11 15:45:53 浏览:338
安卓模拟器如何选择安装 发布:2025-02-11 15:34:26 浏览:176
安卓手机和华为哪个好用 发布:2025-02-11 15:32:11 浏览:555
大众车载dv设置密码多少 发布:2025-02-11 15:26:06 浏览:413
sqlserver连接超时 发布:2025-02-11 15:24:25 浏览:741