number bindec(string binary_string) 二转十
number octdec(string octal_string) 八转十
number hexdec(string hex_string) 十六转十
string decbin(int number) 十进制转换为二进制
string decoct(int number) 十转八
string dechex(int number) 十转十六
string base_convert(string number, int frombase, int tobase)
number是要转换的数,frombase是原进制,tobase是转换后的进制。如base_convert('13',10,2)相称于decbin(13)。
6.2 科学打算
1、绝对值
number abs(mixed number)
返回number的绝对值。
2、三角函数
float tan(float arg) 正切
float sin(float arg) 正弦
float cos(float arg) 余弦
float atan(float arg) 反正切
float asin(float arg) 反正弦
float acos(float arg) 反余弦
float pi(void) 圆周率(或直策应用常量M_PI)
float deg2rad(float number) 角度制转为弧度制(2=to)
float rad2deg(float number) 弧度制转为角度制
3、指数运算
number pow(number base,number exp)
base为底数,exp为幂。而pow(2,4)相称于2^4。
4、对数运算
float log(float arg [,float base])
arg为真数,base为底数。如log(5,2)便是以2为底的5的对数。
5、开方运算
float sqrt(float arg)
返回arg的平方根。
6.3 随机数
1、libcs随机数(传统)
int rand([int min, int max])
天生介于min和max之间的随机整数(包括min和max),如rand(1,3)就可能天生1、2、3这三种情形。如果没有指定min和max,则天生介于0和getrandmax()之间的随机整数。如果希望天生比getrandmax()更大的随机数,请设置min和max。
int getrandmax(void)
返回rand()能取到的最大值,如在Windows平台下是32768。
2、mt_rand()随机数(新兴,速率快)
int mt_rand([int min, int max])
天生介于min和max之间的随机整数(包括min和max),如rand(1,3)就可能天生1、2、3这三种情形。如果没有指定min和max,则天生介于0和mt_getrandmax()之间的随机整数。如果希望天生比mt_getrandmax()更大的随机数,请设置min和max。
int mt_getrandmax(void)
返回mt_rand()能取到的最大值。
6.4 四舍五入、取整和取余
float round(float val [,int precision])
对val进行四舍五入,并根据precision确定保留小数点后几位。如round(4.2)即是4;round(3.625,1)即是3.6。
float floor(float value)
舍尾取整,如floor(3.99)即是3。
float ceil(float value)
尽进取整,如ceil(3.01)即是4。
float fmod(float x, float y)
浮点数的取余运算,如果x、y都是整数,则fmod(x,y)相称于x%y;如果x、y不都是整数,则按照浮点数的运算法则来取余。如fmod(5,1.3)即是1.1,由于5=1.33+1.1。
6.5 比较大小
mixed max(number arg1 ,number arg2 [,number...])
mixed max(array numbers)
返回最大值。但要把稳下面的用法:$val = max(array(2, 4, 8), array(2, 5, 7)),这样$val=array(2, 5, 7)。由于如果操作数都是数字,PHP会逐个比较,一经比出,后面就忽略了。
mixed min(number arg1 ,number arg2 [,number...])
mixed min(array numbers)
返回最小值。把稳事变和max()一样。
6.6 判断数值是否合法
bool is_finite(float val)
判断val是否未超过界线(即系统所能表达的最大值)。
bool is_infinite(float val)
判断一个值是否为有限值。如果是有限值,则返回True;如果不是,则不返回任何值。如果该数值超过了PHP许可的浮点数值范围之内,那么它便是无限值。
bool is_nan(float val)
判断val是否不存在,如is_nan(acos(1.01))将返回true。
6.7 韶光和日期函数
首先让我们认识两个观点,Unix纪元(Unix Epoch)和韶光戳(timestamp)。前者指的是格林威治韶光1970年1月1日零点(January 1 1970 00:00:00 GMT),后者则是从Unix纪元开始计数的秒数,从而表示详细韶光,因此也可以是负数字。如韶光戳若即是-86400,则其表示的韶光是格林威治韶光1969年12月31日零点(December 31 1969 00:00:00 GMT),以此类推。
1、int time(void)
1240632459
2、int mktime([int hour [,int minute [,int second
[,int month [,int day [,int year]]]]]])
返回指定时刻的韶光戳。如果没有指定,则返回当前时候的韶光戳。
3、int strtotime(string time)
将time所表示的韶光转换为韶光戳并返回,如果转化失落败则返回false。例如:
strtotime(“+1 days”,time());//将当前日期中的日加1后的韶光戳返回,把稳理解“+1 days”,个中days位置还可以利用:hours,week,year,month等,或将“+1 days”写成:\公众+1 week 3 days 7 hours 5 seconds\公众,\公众next Monday\"大众,\"大众last Sunday\"大众。
strtotime(“+1 days”,time());//将当前日期中的韶光加一天。
4、array getdate([int timestamp])
根据timestamp或当前时候的韶光戳天生一个数组,包含以下元素:
\公众seconds\"大众 秒(0-59)
\公众minutes\"大众 分(0-59)
\"大众hours\公众 时(0-23)
\"大众mday\"大众 日(1-31)
\"大众wday\"大众 星期(0(星期日)-6(星期六))
\"大众mon\公众 月(1-12)
\"大众year\公众 年(四位)
\公众yday\"大众 这一年的第几天(0-365)
\"大众weekday\"大众 星期全称(Monday-Sunday)
\"大众month\"大众 月份全称(January-December)
0 韶光戳,相称于time()返回的值
5、string date(string format [,int timestamp])
根据格式字符串format输出timestamp所表示的韶光或当前时候。以下是用于format的字符:
---年---
Y 年份(四位)
y 年份(两位)
L 是否为闰年(1、0)
---月---
m 月(01-12)
n 月(1-12)
F 月份全称(January-December)
f 月份简称(Jan-Dec)
t 该月所含天数
---日---
d 日(01-31)
j 日(1-31)
z 这一年的第几天(0-365)
S 英语的日期后缀st、nd、rd、th,与j合用,即\"大众jS\"大众
--星期--
l 星期全称(Monday-Sunday)
D 星期简称(Mon-Sun)
w 星期(0(星期日)-6(星期六))
--韶光--
H 24时制的小时(00-23)
h 12时制的小时(01-12)
G 24时制的小时(1-24)
g 12时制的小时(1-12)
A 高下午标识(AM-PM)
a 高下午标识(am-pm)
i 分(00-59)
s 秒(00-59)
以上符号之外的符号都会被直接输出,如果要输出以上符号则须要转义(\)。
6、int idate(string format [,int timestamp])
根据格式字符format输出一个由timestamp所表示的韶光或当前时候的一个值。以下是用于format的字符:Y、y、m、t、d、w、H、h、i、s,且要把稳一次只能利用一个字符。其余,由于idate()返回的是整数,以是前置导零会被忽略。
7、mixed microtime([bool get_as_float])
返回一个形如\"大众0.57224700 1156425759\"大众的字符串,前半部分是奇妙,后半部分是韶光戳。如果get_as_float被设置为true,则返回形如1156425759.57的浮点数。
8、mixed gettimeofday([bool return_float])
返回一个数组凑集,如果return_float被设置为true,则等价于microtime(true)。以下是数组所含元素:
\"大众sec\"大众 韶光戳,如1156425759
\公众usec\公众 微秒,如572247
如果要以当前时候天生一个精确到毫秒的ID的话:
$ID=date(\"大众YmdHis\"大众).substr(microtime(),2,3);
9、bool checkdate(int month ,int day ,int year)
判断一个日期是否存在。存在返回1,否则返回false。
10、UNIX韶光戳转成标准韶光
(X+83600)/86400+70365+19
X表示UNIX韶光戳的值。
〓关于时区的问题〓
从PHP5.1开始我们必须为程序设置时区。如我们现在在东八区,如果不设置时区的话,以上所有韶光函数所得到的韶光都会以格林威治韶光为准,即比我们这里晚8个小时。设置时区有三种方法:
(1)在php.ini文件中找到date.timezone行,将前面的分号去掉,并赋值\公众Asia/Shanghai\公众或\"大众PRC\"大众。(老外好象把北京忘了)。
(2)如果不能修正php.ini文件,则在调用韶光函数前,用date_default_timezone_set(\"大众Asia/Shanghai\"大众)来设置时区。相应地,可以用date_default_timezone_get()来获取当前时区。
(3)以下列格式输出韶光:echo date(”Y-m-d H:i:s”, time()+86060);
这样,时区就调度好了,韶光函数也能准确运作了。其他可用与时区设置的参数可自行查阅PHP文档。
6.8、empty()与isset()函数的差异
empty(变量名):
如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,\公众\公众、0、\"大众0\"大众、NULL、FALSE、array()、var $var; 以及没有任何属性的工具都将被认为是空的,如果var 为空,则返回TRUE。
除了当变量没有置值时不产生警告之外,empty()是 (boolean) var 的反义词。
isset(变量名):
如果var存在则返回TRUE,否则返回FALSE。
如果已经利用unset() 开释了一个变量之后,它将不再是 isset()。若利用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要把稳的是一个 NULL 字节(\"大众\0\"大众)并不等同于 PHP 的 NULL 常数。
警告: isset() 只能用于变量,由于通报任何其它参数都将造成解析缺点。若想检测常量是否已设置,可利用 defined() 函数。
PHP还设置了其他很多的以“is_”开头的函数,从名字就可以看出,这类函数的功能便是用来判断在调用该函数时所给出的参数“是不是什么类型的”、“是不是由什么组成的”或“是不是可以进行某种操作”。下面给出一些常用的以“is_”开头的函数,供大家参考:
is_array(varName),is_bool(varName),is_dir(pathName),is_file(fileName),is_double(varName),is_float(varName),is_int(varName),is_nan(varName)判断数值是否是合法的,is_null(varName),is_numeric(varName),is_string(varName)
6.9、unset()函数
功能:开释给定的变量
语法:unset(变量1,变量2,……)
6.10 realpath()函数
realpath() 函数返回绝对路径。
该函数删除所有符号连接(比如 '/./', '/../' 以及多余的 '/'),返回绝对路径名。若失落败,则返回 false。比如说文件不存在的话。
6.11 PHP编码转换函数
iconv()函数的浸染是:转换字符串的编码。
Description string iconv ( string in_charset, string out_charset, string str )
把稳:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,个中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个造孽字符截断。
mb_convert_encoding() 函数
mb_convert_encoding()函数的浸染是:宽字符编码转换
Description string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])
把稳:但是须要先enable mbstring 扩展库。两者差异:mb_convert_encoding 中根据内容自动识别编码;mb_convert_encoding功能强大,但是实行效率比iconv差太多;
总结:一样平常情形下用 iconv,只有当碰着无法确定原编码是何种编码时才用 mb_convert_encoding 函数。
例如:gb2312转换成utf-8
$utf=iconv('GB2312', 'UTF-8', $_REQUEST['keyword']);
将字符串utf-8码转换为gb2312码
$str = iconv(\公众UTF-8\公众,\"大众GB2312//TRANSLIT\"大众,$str);
6.12 URL参数编码与解码
rawurldecode()
rawurldecode -- 对用rawurlencode()已编码的 URL 字符串进行解码
描述
string rawurldecode ( string str)
返回字符串,此字符串中百分号(%)后跟两位十六进制数的序列都将被更换成原义字符。
例子 1. rawurldecode() 示例
<?php
echo rawurldecode('foo%20bar%40baz'); // foo bar@baz
?>
rawurlencode()
rawurlencode -- 按照 RFC 1738 对 URL 进行编码
描述
string rawurlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被更换成百分号(%)后跟两位十六进制数。这是在 RFC 1738 中描述的编码,是为了保护原义字符以免其被阐明为分外的 URL 定界符,同时保护 URL 格式以免其被传输媒体(像一些邮件系统)利用字符转换时弄乱。例如,如果你想在 FTP 的 URL 中包含密码:
例子 1. rawurlencode() 示例 1
<?php
echo '<a href=\"大众ftp://user:', rawurlencode('foo @+%/'),
'@ftp.my.com/x.txt\"大众>';
?>
或者,如果你想通过 URL 的 PATH_INFO 构成部分去通报信息:
例子 2. rawurlencode() 示例 2
<?php
echo '<a href=\"大众http://x.com/department_list_script/',
rawurlencode('sales and marketing/Miami'), '\公众>';
?>
urldecode()
urldecode -- 解码用urlencode()已编码的 URL 字符串
描述
string urldecode ( string str)
解码给出的已编码字符串中的任何 %##。返回解码后的字符串。
例子 1. urldecode()
<?php
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
echo 'Value for parameter ', htmlspecialchars(urldecode($b[0])),
' is ', htmlspecialchars(urldecode($b[1])), \"大众<br />\n\公众;
$i++;
}
?>
urlencode()
urlencode -- 编码 URL 字符串
描述
string urlencode ( string str)
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被更换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码办法是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码办法一样。由于历史缘故原由,此编码在将空格编码为加号(+)方面与 RFC1738 编码(拜会 rawurlencode())不同。此函数便于将字符串编码并将其用于 URL 的要求部分,同时它还便于将变量通报给下一页: 例子 1. urlencode() 示例
<?php
echo '<a href=\"大众mycgi?foo=', urlencode($userinput), '\"大众>';
?>
把稳:小心与 HTML 实体相匹配的变量。像 &、© 和 £ 都将被浏览器解析,并利用实际实体替代所期待的变量名。这是明显的混乱,W3C 已经告诫人们好几年了。参考地址:http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2 PHP 通过 arg_separator .ini 指令,支持将参数分割符变成 W3C 所建议的分号。不幸的是大多数用户代理并不发送分号分隔符格式的表单数据。较为大略的办理办法是利用 & 代替 & 作为分隔符。你不须要为此修正 PHP 的 arg_separator。让它仍为 &,而仅利用 htmlentities(urlencode($data)) 对你的 URL 进行编码。
例子 2. urlencode() 与 htmlentities() 示例
<?php
echo '<a href=\公众mycgi?foo=', htmlentities(urlencode($userinput)), '\"大众>';
?>
6.13删除指定字符串中的HTML标记
strip_tags()函数剥去 HTML、XML 以及 PHP 的标签。
语法:strip_tags(string,allow);
参数描述
string必需。规定要检讨的字符串。
allow可选。规定许可的标签。这些标签不会被删除。
例子:
1、删除所有的HTML和XML标记
<?php
echo strip_tags(\公众Hello <b>world!</b>\公众);
?>
2、保存指定的标记
<?php
echo strip_tags(\"大众Hello <b><i>world!</i></b>\公众,\"大众<b>\"大众);//保存标记<br>
?>