PHP4手册:函数库及函数(二十七) mcrypt 编码函式库


--------------------------------------------------------------------------------
数学运算函式库
--------------------------------------------------------------------------------
本函式库共有 33 个函式
本函式库能处
--------------------------------------------------------------------------------
mcrypt 编码函式库
--------------------------------------------------------------------------------
本函式库共有 8 个函式
要使用本函式库要先准备 mcrypt 程式,可以到 ftp://argeas.cs-net.gr/pub/unix/mcrypt 下载这个程式 libmcrypt-x.x.tar.gz。同时在编译 PHP 程式时需要加入 --with-mcrypt 的选项,俾使本函式库能顺利运作。
本函式提供的编码方式有 DES、TripleDES、Blowfish (内定值)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、RC2 及使用 CBC, OFB, CFB, ECB 作为密码检索的 GOST。此外还有 RC6 及 IDEA 等非免费的编码方式。见下面列示为已定义的密码:
MCRYPT_BLOWFISH
MCRYPT_DES
MCRYPT_TripleDES
MCRYPT_ThreeWAY
MCRYPT_GOST
MCRYPT_CRYPT
MCRYPT_DES_COMPAT
MCRYPT_SAFER64
MCRYPT_SAFER128
MCRYPT_CAST128
MCRYPT_TEAN
MCRYPT_RC2
MCRYPT_TWOFISH (mcrypt 2.x 前的版本用)
MCRYPT_TWOFISH128 (mcrypt 2.x 后的版本用)
MCRYPT_TWOFISH192
MCRYPT_TWOFISH256
MCRYPT_RC6
MCRYPT_IDEA
在密码检索本 (cipher) 方面,本函库支援 CBC、OFB、CFB 与 ECB 四种密码检索本。这四种密码检索本的简单叙述如下,更详细的资讯请参考 Schneier 所着作的 Applied Cryptography (ISBN: 0-471-11709-9):
ECB (electronic codebook): 适合随机的资料,例如使用另外的密钥。若资料量少且随机时,使用 ECB 较不适合。
CBC (cipher block chaining): 适合档案的加密,安全性较 ECB 好。
CFB (cipher feedback): 适合对位元组资料流中的某段独立位元组资料 (single bytes) 加密。
OFB (output feedback): 与 CFB 相容,尤其适合在无法忍受错误波及的应用上。
目前 PHP 仍无法对单位元 (bit) 的熵值做加密解密的动作,目前只适合对字串作密码处理。
在使用 CFB 及 OFB 二种模式时,必须要向量初始化 (Initialization vector, IV),CBC 模式也可以使用向量初始化。向量初始化的值在加解密时必须是独一无二的,同时也要保持相同。当加密后的资料输出时,也可同时输出密码钥匙 (例如存在档案中);或者也可以将向量初始化的值与加密后的资料一起输出。
mcrypt_get_cipher_name: 取得编码方式的名称。
mcrypt_get_block_size: 取得编码方式的区块大小。
mcrypt_get_key_size: 取得编码钥匙大小。
mcrypt_create_iv: 从随机源将向量初始化。
mcrypt_cbc: 使用 CBC 将资料加/解密。
mcrypt_cfb: 使用 CFB 将资料加/解密。
mcrypt_ecb: 使用 ECB 将资料加/解密。
mcrypt_ofb: 使用 OFB 将资料加/解密。
--------------------------------------------------------------------------------
函式:mcrypt_get_cipher_name()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_get_cipher_name
取得编码方式的名称。
语法: string mcrypt_get_cipher_name(int cipher);
传回值: 字串
函式种类: 编码处理
内容说明
本函式用来取得编码方式的名称。传回值为名称字串,若没有指定的编码方式则传回 false 或输入的名称。
使用范例
下例会输出 TripleDES 字串。
$cipher = MCRYPT_TripleDES;
print mcrypt_get_cipher_name($cipher);
?>
--------------------------------------------------------------------------------
函式:mcrypt_get_block_size()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_get_block_size
取得编码方式的区块大小。
语法: int mcrypt_get_block_size(int cipher);
传回值: 整数
函式种类: 编码处理
内容说明
本函式用来取得编码方式的区块大小。参数为编码名称,传回整数值的单位为位元组 (byte)。
--------------------------------------------------------------------------------
函式:mcrypt_get_key_size()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_get_key_size
取得编码钥匙大小。
语法: int mcrypt_get_key_size(int cipher);
传回值: 整数
函式种类: 编码处理
内容说明
本函式用来取得编码钥匙的大小。参数为编码名称,传回整数值的单位为位元组 (byte)。
--------------------------------------------------------------------------------
函式:mcrypt_create_iv()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_create_iv
从随机源将向量初始化。
语法: string mcrypt_create_iv(int size, int source);
传回值: 字串
函式种类: 编码处理
内容说明
本函式用来建立向量初始化 (Initialization vector, IV) 的值。参数 size 为指定的向量初始化值的长度。参数 source 为随机资料的来源,来源可以是 MCRYPT_RAND (系统产生的随机值)、MCRYPT_DEV_RANDOM (UNIX 系统中 /dev/random 的资料)、MCRYPT_DEV_URANDOM (UNIX 系统中 /dev/urandom 的资料),若使用 MCRYPT_RAND 当做随机源,记得先使用 srand() 产生乱数种子。
使用范例
$cipher = MCRYPT_TripleDES;
$block_size = mcrypt_get_block_size($cipher);
$iv = mcrypt_create_iv($block_size, MCRYPT_DEV_RANDOM);
?>
--------------------------------------------------------------------------------
函式:mcrypt_cbc()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_cbc
使用 CBC 将资料加/解密。
语法: string mcrypt_cbc(int cipher, string key, string data, int mode, string [iv]);
传回值: 字串
函式种类: 编码处理
内容说明
本函式使用 CBC 密码检索本 (cipher block chaining),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是可省略的参数,代表向量初始化 (Initialization vector, IV)。
--------------------------------------------------------------------------------
函式:mcrypt_cfb()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_cfb
使用 CFB 将资料加/解密。
语法: string mcrypt_cfb(int cipher, string key, string data, int mode, string iv);
传回值: 字串
函式种类: 编码处理
内容说明
本函式使用 CFB 密码检索本 (cipher feedback),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 是代表向量初始化 (Initialization vector, IV)。
--------------------------------------------------------------------------------
函式:mcrypt_ecb()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_ecb
使用 ECB 将资料加/解密。
语法: string mcrypt_ecb(int cipher, string key, string data, int mode);
传回值: 字串
函式种类: 编码处理
内容说明
本函式使用 ECB 密码检索本 (electronic codebook),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。
--------------------------------------------------------------------------------
函式:mcrypt_ofb()
--------------------------------------------------------------------------------
mcrypt 编码函式库
mcrypt_ofb
使用 OFB 将资料加/解密。
语法: string mcrypt_ofb(int cipher, string key, string data, int mode, string iv);
传回值: 字串
函式种类: 编码处理
内容说明
本函式使用 OFB 密码检索本 (output feedback),将资料加密及解密。参数 cipher 为加/解密方式,例如 MCRYPT_TripleDES。参数 key 是密码钥匙,当然要注意保持它的机密性。欲加密或解密的字串就放在参数 data 之中。参数 mode 表示加密 MCRYPT_ENCRYPT 或是解密 MCRYPT_DECRYPT。参数 iv 为向量初始化 (Initialization vector, IV)。。
Abs: 取得绝对值。
Acos: 取得反余弦值。
Asin: 取得反正弦值。
Atan: 取得反正切值。
Atan2: 计算二数的反正切值。
base_convert: 转换数字的进位方式。
BinDec: 二进位转成十进位。
Ceil: 计算大于指定数的最小整数。
Cos: 余弦计算。
DecBin: 十进位转二进位。
DecHex: 十进位转十六进位。
DecOct: 十进位转八进位。
Exp: 自然对数 e 的次方值。
Floor: 计算小于指定数的最大整数。
getrandmax: 乱数的最大值。
HexDec: 十六进位转十进位。
Log: 自然对数值。
Log10: 10 基底的对数值。
max: 取得最大值。
min: 取得最小值。
mt_rand: 取得乱数值。
mt_srand: 设定乱数种子。
mt_getrandmax: 乱数的最大值。
number_format: 格式化数字字串。
OctDec: 八进位转十进位。
pi: 圆周率。
pow: 次方。
rand: 取得乱数值。
round: 四舍五入。
Sin: 正弦计算。
Sqrt: 开平方根。
srand: 设定乱数种子。
Tan: 正切计算。
--------------------------------------------------------------------------------
函式:Abs()
--------------------------------------------------------------------------------
数学运算函式库
Abs
取得绝对值。
语法: mixed abs(mixed number);
传回值: 混合型态资料
函式种类: 数学运算
内容说明
传回参数 number 的绝对值。若 number 是倍精确浮点数,则传回值也是倍浮点数;其它的型态则传回型态为整数。
--------------------------------------------------------------------------------
函式:Acos()
--------------------------------------------------------------------------------
数学运算函式库
Acos
取得反余弦值。
语法: float acos(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
传回参数 arg 的反余弦值 (arc cosine)。
参考
asin() atan()
--------------------------------------------------------------------------------
函式:Asin()
--------------------------------------------------------------------------------
数学运算函式库
Asin
取得反正弦值。
语法: float asin(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
传回参数 arg 的反正弦值 (arc sine)。
参考
acos() atan()
--------------------------------------------------------------------------------
函式:Atan()
--------------------------------------------------------------------------------
数学运算函式库
Atan
取得反正切值。
语法: float atan(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
传回参数 arg 的反正切值 (arc tangent)。
参考
acos() asin()
--------------------------------------------------------------------------------
函式:Atan2()
--------------------------------------------------------------------------------
数学运算函式库
Atan2
计算二数的反正切值。
语法: float atan2(float y, float x);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式用来计算二数 y、x 的反正切值,计算结果与 atan() 计算 y/x 类似,但本函式会因 x、y 的正负号影响结果。而本函式的传回值必落在正负的圆周率间 (-PI <= 值 <= PI)。
参考
acos() atan() asin()
--------------------------------------------------------------------------------
函式:base_convert()
--------------------------------------------------------------------------------
数学运算函式库
base_convert
转换数字的进位方式。
语法: string base_convert(string number, int frombase, int tobase);
传回值: 字串
函式种类: 数学运算
内容说明
本函式将数字字串 number 从以 frombase 进位转换到以 tobase 进位。本式能够处理的由以二进位到以三十六进位之间的进位方式。在十进位之前都是以数字表示,而在超过十进位之后就用英文字母表示。例如十六进位个位数依序为 123456789abcdef,10 的顺序是第十七个,这时才进一位。而三十六进位 a 是第十个、b 为第十一个、z 为第三十六个、10 是第三十七个,这时才进位。
使用范例
本例将十六进位字串转成二进位字串
$binary = base_convert($hexadecimal, 16, 2);
echo "十六进位字串\"$hexadecimal\"转成二进位为\"$binary\"。";
?>
--------------------------------------------------------------------------------
函式:BinDec()
--------------------------------------------------------------------------------
数学运算函式库
BinDec
二进位转成十进位。
语法: int bindec(string binary_string);
传回值: 整数
函式种类: 数学运算
内容说明
本函式将二进位数字字串转成十进位的整数。由于 PHP 使用 32 位元有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。
参考
DecBin()
--------------------------------------------------------------------------------
函式:Ceil()
--------------------------------------------------------------------------------
数学运算函式库
Ceil
计算大于指定数的最小整数。
语法: int ceil(float number);
传回值: 整数
函式种类: 数学运算
内容说明
本函式用来计算比浮点参数 number 大的最小整数。
使用范例
本例传回值为 4。
$nextint=ceil(3.14);
echo $nextint;
?>
参考
Floor() round()
--------------------------------------------------------------------------------
函式:Cos()
--------------------------------------------------------------------------------
数学运算函式库
Cos
余弦计算。
语法: float cos(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算参数 arg 的余弦值 (cosine)。
参考
Sin() Tan()
--------------------------------------------------------------------------------
函式:DecBin()
--------------------------------------------------------------------------------
数学运算函式库
DecBin
十进位转二进位。
语法: string decbin(int number);
传回值: 字串
函式种类: 数学运算
内容说明
本函式将十进位数字转成二进位字串。由于 PHP 使用 32 位元有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。
参考
BinDec()
--------------------------------------------------------------------------------
函式:DecHex()
--------------------------------------------------------------------------------
数学运算函式库
DecHex
十进位转十六进位。
语法: string dechex(int number);
传回值: 字串
函式种类: 数学运算
内容说明
本函式将十进位数字转成十六进位字串。由于 PHP 使用 32 位元有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是十六进位数字 7fffffff。
参考
HexDec()
--------------------------------------------------------------------------------
函式:DecOct()
--------------------------------------------------------------------------------
数学运算函式库
DecOct
十进位转八进位。
语法: string decoct(int number);
传回值: 字串
函式种类: 数学运算
内容说明
本函式将十进位数字转成八进位字串。由于 PHP 使用 32 位元有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是八进位数字 17777777777。
参考
OctDec()
--------------------------------------------------------------------------------
函式:Exp()
--------------------------------------------------------------------------------
数学运算函式库
Exp
自然对数 e 的次方值。
语法: float exp(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算自然对数 (natural logarithm) 的 arg 次方值。
参考
pow() Log()
--------------------------------------------------------------------------------
函式:Floor()
--------------------------------------------------------------------------------
数学运算函式库
Floor
计算小于指定数的最大整数。
语法: int floor(float number);
传回值: 整数
函式种类: 数学运算
内容说明
本函式用来计算比浮点参数 number 小的最大整数。
使用范例
本例传回值为 3。
$lastint=floor(3.14);
echo $lastint;
?>
参考
Ceil() round()
--------------------------------------------------------------------------------
函式:getrandmax()
--------------------------------------------------------------------------------
数学运算函式库
getrandmax
乱数的最大值。
语法: int getrandmax(void);
传回值: 整数
函式种类: 数学运算
内容说明
本函式计算乱数函式 rand() 可能取得的取得的最大乱数值。本函式不需参数。
参考
rand() srand() mt_rand() mt_srand() mt_getrandmax()
--------------------------------------------------------------------------------
函式:HexDec()
--------------------------------------------------------------------------------
数学运算函式库
HexDec
十六进位转十进位。
语法: int hexdec(string hex_string);
传回值: 整数
函式种类: 数学运算
内容说明
本函式将十六进位字串转成十进位数字。由于 PHP 使用 32 位元有正负号整数计算,能处理的最大十六进位数字为 7fffffff,也就是十进位数字的 2147483647。
参考
DecHex()
--------------------------------------------------------------------------------
函式:Log()
--------------------------------------------------------------------------------
数学运算函式库
Log
自然对数值。
语法: float log(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算参数 arg 的自然对数 (natural logarithm) 值。
--------------------------------------------------------------------------------
函式:Log10()
--------------------------------------------------------------------------------
数学运算函式库
Log10
10 基底的对数值。
语法: float log10(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算参数 arg 的 10 基底对数值。
--------------------------------------------------------------------------------
函式:max()
--------------------------------------------------------------------------------
数学运算函式库
max
取得最大值。
语法: mixed max(mixed arg1, mixed arg2 .... mixed argn);
传回值: 混合型态资料
函式种类: 数学运算
内容说明
本函式计算参数间的最大值。若第一个参数是数字阵列,则会找出该阵列的最大数字。若第一个参数非阵列,则需二个以上的参数。这些数字可以是整数、倍精确数或数字字串的型态。参数的数目不限,视使用者的需求而定。在计算时,只要有一个参数是倍精确数,本函式会将所有的参数都转成倍精确数,并传回倍精确数。若参数只有整数及数字字串,则会将所有的参数转换成整数,并传回整数。
参考
min()
--------------------------------------------------------------------------------
函式:min()
--------------------------------------------------------------------------------
数学运算函式库
min
取得最小值。
语法: mixed min(mixed arg1, mixed arg2 .... mixed argn);
传回值: 混合型态资料
函式种类: 数学运算
内容说明
本函式计算参数间的最小值。若第一个参数是数字阵列,则会找出该阵列的最小数字。若第一个参数非阵列,则需二个以上的参数。这些数字可以是整数、倍精确数或数字字串的型态。参数的数目不限,视使用者的需求而定。在计算时,只要有一个参数是倍精确数,本函式会将所有的参数都转成倍精确数,并传回倍精确数。若参数只有整数及数字字串,则会将所有的参数转换成整数,并传回整数。
参考
max()
--------------------------------------------------------------------------------
函式:mt_rand()
--------------------------------------------------------------------------------
数学运算函式库
mt_rand
取得乱数值。
语法: int mt_rand([int min], [int max]);
传回值: 整数
函式种类: 数学运算
内容说明
本函式不使用一般常用的 libc 来计算乱数值,而是使用计算速度至少快四倍的马其赛特旋转 (Mersenne Twister) 演算法来计算乱数值。有关马特赛特旋转演算法可在松本真的 http://www.math.keio.ac.jp/~matumoto/emt.html 找到更多的相关资讯,最佳化的原始程式则在 http://www.scp.syr.edu/~marc/hawk/twister.html。若没有指定乱数的最大及最小范围,本函式会自动的从 0 到 RAND_MAX 中取一个乱数。若有指定 min 及 max 的参数,则从指定参数中取一个数字,例如 mt_rand(38, 49) 则会从 38 到 49 之间取一个乱数值。值得注意的是为使乱数的乱度最大,每次在取乱数之前最好使用 mt_srand() 以设定新的乱数种子。
参考
rand() srand() getrandmax() mt_srand() mt_getrandmax()
--------------------------------------------------------------------------------
函式:mt_srand()
--------------------------------------------------------------------------------
数学运算函式库
mt_srand
设定乱数种子。
语法: void mt_srand(int seed);
传回值: 无
函式种类: 数学运算
内容说明
本函式传入参数 seed 后,设定乱数的种子。值得注意的是参数 seed 值最好也是随机出现的数字,例如利用加入时间做为变数的来源就是不错的方法,或者开发其它的硬体周边介面可取得更好的乱数。
使用范例
本例加入时间的因素,以执行时的百万分之一秒当乱数种子
mt_srand((double)microtime()*1000000);
$randval = mt_rand();
echo $randval;
?>
参考
rand() srand() getrandmax() mt_rand() mt_getrandmax()
--------------------------------------------------------------------------------
函式:mt_getrandmax()
--------------------------------------------------------------------------------
数学运算函式库
mt_getrandmax
乱数的最大值。
语法: int mt_getrandmax(void);
传回值: 整数
函式种类: 数学运算
内容说明
本函式计算乱数函式 mt_rand() 可能取得的取得的最大乱数值。本函式不需参数。
参考
rand() srand() getrandmax() mt_srand() mt_rand()
--------------------------------------------------------------------------------
函式:number_format()
--------------------------------------------------------------------------------
数学运算函式库
number_format
格式化数字字串。
语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
传回值: 字串
函式种类: 数学运算
内容说明
本函式用来将浮点参数 number 格式化。若没加参数 decimals 则传回的字串只要整数部份,加了此参数才依参数指定的小数点位数传回。参数 dec_point 表示小数点的表示方式方法,内定值是 ".",若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号,内定值是 ","。本函式最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字串;也可以有二个或者四个参数,但不能用三个参数。值得注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。
使用范例
$short_pi = "3.14159";
$my_pi = number_format($short_pi, 2);
echo $my_pi."\n"; // 3.14
$foo = 850017.9021;
$new_foo = number_format($foo, 3, ".", " ");
echo $new_foo."\n"; // 850 017.902
?>
--------------------------------------------------------------------------------
函式:OctDec()
--------------------------------------------------------------------------------
数学运算函式库
OctDec
八进位转十进位。
语法: string decoct(int number);
传回值: 字串
函式种类: 数学运算
内容说明
本函式将八进位字串转成十进位数字。由于 PHP 使用 32 位元有正负号整数计算,能处理最大的八进位数字为 17777777777,也就是十进位数字的 2147483647。
参考
DecOct()
--------------------------------------------------------------------------------
函式:pi()
--------------------------------------------------------------------------------
数学运算函式库
pi
圆周率。
语法: double pi(void);
传回值: 倍精确数
函式种类: 数学运算
内容说明
本函式传回圆周率。不需输入参数。
--------------------------------------------------------------------------------
函式:pow()
--------------------------------------------------------------------------------
数学运算函式库
pow
次方。
语法: float pow(float base, float exp);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算次方值。参数 base 为基底,exp 为幂数。
使用范例
print(pow(2,3)); // 8
print(pow(5,4)); // 625
?>
参考
Log10() Exp()
--------------------------------------------------------------------------------
函式:rand()
--------------------------------------------------------------------------------
数学运算函式库
rand
取得乱数值。
语法: int rand([int min], [int max]);
传回值: 整数
函式种类: 数学运算
内容说明
本函式用来取得乱数值。若没有指定乱数的最大及最小范围,本函式会自动的从 0 到 RAND_MAX 中取一个乱数。若有指定 min 及 max 的参数,则从指定参数中取一个数字。例如 rand(38, 49) 则会从 38 到 49 之间取一个乱数值,UNIX 系统包含 49、Win32 系统不包含 49 (zkimmel@earthlink.net 10-May-1999)。值得注意的是为使乱数的乱度最大,每次在取乱数之前最好使用 srand() 以设定新的乱数种子。
参考
srand() getrandmax() mt_rand() mt_srand() mt_getrandmax()
--------------------------------------------------------------------------------
函式:round()
--------------------------------------------------------------------------------
数学运算函式库
round
四舍五入。
语法: double round(double val);
传回值: 倍精确数
函式种类: 数学运算
内容说明
本函式用来将数字小数点后四舍五入。
使用范例
$foo1 = round(3.4);
$foo2 = round(3.5);
$foo3 = round(3.6);
echo "round(3.4): ".$foo1."
\n";
echo "round(3.5): ".$foo2."
\n";
echo "round(3.6): ".$foo3;
?>
参考
Ceil() Floor()
--------------------------------------------------------------------------------
函式:Sin()
--------------------------------------------------------------------------------
数学运算函式库
Sin
正弦计算。
语法: float sin(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算参数 arg 的正弦值 (sine)。
参考
Cos() Tan()
--------------------------------------------------------------------------------
函式:Sqrt()
--------------------------------------------------------------------------------
数学运算函式库
Sqrt
开平方根。
语法: float sqrt(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式将参数 arg 开平方根。
--------------------------------------------------------------------------------
函式:srand()
--------------------------------------------------------------------------------
数学运算函式库
srand
设定乱数种子。
语法: void srand(int seed);
传回值: 无
函式种类: 数学运算
内容说明
本函式传入参数 seed 后,设定乱数的种子。值得注意的是参数 seed 值最好也是随机出现的数字,例如利用加入时间做为变数的来源就是不错的方法,或者开发其它的硬体周边介面可取得更好的乱数。
使用范例
本例加入时间的因素,以执行时的百万分之一秒当乱数种子
srand((double)microtime()*1000000);
$randval = rand();
echo $randval;
?>
参考
rand() getrandmax() mt_srand() mt_rand() mt_getrandmax()
--------------------------------------------------------------------------------
函式:Tan()
--------------------------------------------------------------------------------
数学运算函式库
Tan
正切计算。
语法: float tan(float arg);
传回值: 浮点数
函式种类: 数学运算
内容说明
本函式计算参数 arg 的正切值 (tangent)。
参考
Sin() Cos()