一、 时间日期函数
date(),strtotime(),mktime(),time(),microtime(), date_default_timezone_set("Asia/Shanghai");
- date — 格式化一个本地时间/日期
string date ( string $format [, int $timestamp ] )
返回将整数 timestamp
按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp
是可选的,默认值为 time()。 - time() 返回当前的 Unix 时间戳
int time ( void )
date_default_timezone_set("Asia/Shanghai");
echo $showtime=date("Y-m-d H:i:s",time());
- strtotime()— 将任何字符串的日期时间描述解析为 Unix 时间戳
function diffBetweenTwoDays ($day1, $day2)
{
$second1 = strtotime($day1);
$second2 = strtotime($day2);
if ($second1 < $second2) {
$tmp = $second2;
$second2 = $second1;
$second1 = $tmp;
}
return ($second1 - $second2) / 86400;
}
$day1 = "2013-07-27";
$day2 = "2013-08-04";
$diff = diffBetweenTwoDays($day1, $day2);
echo $diff."\n";
ip处理函数
- ip2long — 将一个IPV4的字符串互联网协议转换成数字格式
int ip2long ( string $ip_address ) - long2ip — 将长整型转化为字符串形式带点的互联网标准格式地址(IPV4)
打印处理函数
print(),print_r(),echo,printf(),sprintf(),var_dump(),var_export()
- print 只能输出一个变量
echo 可以多个变量,建议用echo
$url = "https:%s";
$prefix = "http";
$mergeurl = sprintf($url,"www.zhitaochan.cn");
// print $mergeurl,$prefix;//语法错误
echo $mergeurl,$prefix;//可以输出
- var_export()
var_export — 输出或返回一个变量的字符串表示,返回的变量是复合php语法的可以直接使用 ,而var_dump()则不能。
序列化和反序列化
- serialize
产生一个可存储的值的表示 - unserialize
比较serialize与json_encode
<?php
$target = array (
'battle_id'=> 257
,'user_id'=> 41248
,'user_id2'=> 23989
,'player'=> 41248
,'formation'=> Array
(
'41248'=> 1
,'23989'=> 2
)
,'result'=> 1
,'battle_type'=> 1
,'speed'=> Array
(
'41248'=> 0
,'23989'=> 0
)
);
$json = json_encode($target);
$seri = serialize($target);
print($json);
print("\n");
print($seri);
2.对象的解析
<?php
//声明一个类
class dog {
var $name;
var $age;
var $owner;
function dog($in_name="unnamed",$in_age="0",$in_owner="unknown") {
$this->name = $in_name;
$this->age = $in_age;
$this->owner = $in_owner;
}
function getage() {
return ($this->age * 365);
}
function getowner() {
return ($this->owner);
}
function getname() {
return ($this->name);
}
}
//实例化这个类
$ourfirstdog = new dog("Rover",12,"Lisa and Graham");
//用serialize函数将这个实例转化为一个序列化的字符串
$dogdisc = serialize($ourfirstdog);
print $dogdisc; //$ourfirstdog 已经序列化为字符串 O:3:"dog":3:{s:4:"name";s:5:"Rover";s:3:"age";i:12;s:5:"owner";s:15:"Lisa and Graham";}
print '<BR>';
$json = json_encode($ourfirstdog);
print $json;//{"name":"Rover","age":12,"owner":"Lisa and Graham"}
字符串处理函数
implode(),explode(),join(),strrev(),trim(),ltrim(),rtrim(),strstr(),number_formate(),
- implode()
implode — 将一个一维数组的值转化为字符串
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
- explode()
explode — 使用一个字符串分割另一个字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
- join()
别名 implode
$array = array('lastname', 'email', 'phone');
$comma_separated = join(",", $array);
print $comma_separated;
strrev()
反转字符串
string strrev ( string $string )trim()
去除字符串首尾处的空白字符(或者其他字符)ltrim()
删除字符串开头的空白字符(或其他字符)rtrim()
删除字符串末端的空白字符(或者其他字符)strstr()
查找字符串的首次出现
<?php
$email = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com
$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?>
- number_format
以千位分隔符方式格式化一个数字
数组的处理函数
array_keys(),array_values(),array_diff(),array_intersect(),array_merge(),array_shift(),array_unshift(),array_pop(),array_push(),sort()
array_keys
返回数组中部分的或所有的键名array_values()
array_values — Return all the values of an arrayarray_diff()
array与一个或多个其他数组进行 比较,并返回其中array1不存在于其他数组中的值。array_intersect()
计算数组的交集
array array_intersect ( array $array1 , array $array2 [, array $... ] )
array_intersect() 返回一个数组,该数组包含了所有在 array1 中也同时出现在所有其它参数数组中的值。注意键名保留不变。
- array_merge
合并一个或多个数组
array array_merge ( array $array1 [, array $... ] )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引
- array_shift()
将数组开头的单元移出数组
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>
输出:
Array
(
[0] => banana
[1] => apple
[2] => raspberry
)
- array_unshift()
在数组开头插入一个或多个单元
array_unshift() 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>
输出:
Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
- array_pop
弹出数组最后一个单元(出栈)
<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>
输出:
Array
(
[0] => orange
[1] => banana
[2] => apple
)
array_push()
将一个或多个单元压入数组的末尾(入栈)
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。sort
对数组排序