function timeop($time,$type="talk") {
$ntime=time()-$time;
if ($ntime<60) {
return("刚才");
} elseif ($ntime<3600) {
return(intval($ntime/60)."分钟前");
} elseif ($ntime<3600*24) {
return(intval($ntime/3600)."小时前");
} else {
if ($type=="talk") {
return(gmdate('m月d日 h:i',$time+8*3600));
} else {
return(gmdate('y-m-d h:i',$time+8*3600));
}
}
}
1.什么是session
session,中文名称为会话,它是指一类用来在客户端和服务器间保持会话连接状态的解决方案,同时
由于其的广泛应用性,php教程作为一种web开发语言,当然也是完全的支持session机制.
具体针对web网站来说,session指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的时间,由
此可知,session实际上是一个特定的时间概念.
通过使用session,我们就可以在网站的上下文不同页面间传递变量,将session用于用户身份认证,
程序状态记录等,最常见的形式就是配合cookie使用,实现保存用户登录状态等功能.2.php session用法
每一个网站访客都会被分配给一个唯一的标志符,即会话id,它的存放形式无非两种:要么经过
url传递,要么保存在客户端的cookies里.当然,你也可以将session保存到数据库教程里,这样会
更安全,但效率方面会有所下降.
url方式传递安全性肯定太差,php的会话机制是通过设置cookie,在cookies中保存会话id
(session id),在服务器端会生成session文件,与用户进行关联,web应用程序存储与这些
session相关的数据,并在各页面间进行传递.3.php session函数及使用
在php中有关session的函数比较多,不过我们最常用到的也就这么几个函数:
session_start(), session_register(),session_unregister(),
session_is_registered(),session_destroy函数.
session_start():启用session机制,在需要用到session的程序文件的最开始调用它.
session_register():注册session变量
session_unregister(): 删除session变量(一个一个删除)
session_is_registered(): 判断session变量是否注册
session_distroy(): 销毁所有session变量(所有session变量销毁)
需要注意下面几个方面:
1.函数session_start()必须在程序最开始执行,在其前面不能有任何输出内容,否则
就会出现“warning:cannot send session cookie - headers already
sent"类似这样的警告信息.
2.函数session_register()用于注册要保存在session中的相关变量,其用法如下:
<?php
$val = "session value";
session_register("val");
?>
val即为要注册的session变量名,在注册时一定不要加上"$"符号,只写其变量名称即可.
3.函数session_unregister()与上面函数用法完全相同,但功能相反,上面函数是注册
session变量,而其则是删除指定的session变量.
4.函数session_is_registered()用于判断session变量是否注册.
5.函数session_destroy()主要用于在系统注销和退出时,销毁所有的session变量,
它没有参数,直接调用即可。
下面是一个简单的完整的使用样例程序:
<?php
session_start();
$val = "session value";
session_register("val");
if(session_is_registered("val")) {
session_unregister("val");
}
else {
echo "val变量还未进行注册";
}
session_destroy();
?>
strtr函数的另一种情况
< ?php教程 echo strtr("i loves you","love","lovea"); ?>
结果是
i loves you
注意看第三个参数的a,在结果中并没有出现
4.我不建议用strtr以少换多
ok,既然这个strtr函数挺麻烦为什么还要用呢?
原因是,它的速度很快
据说,strtr 比 str_replace 快四倍
5.php字符串替换能用strtr函数的时候一定要用
那怎么用才舒服?
这就是它的第二种情况
strtr(string,array)
6.strtr符合意愿的使用方法
< ?php $table_change = array('you'=>'her sister'); echo strtr("i love you",$table_change); ?>
结果为
i love her sister
7.小技巧:你想到php字符串替换该替换什么你就往数组加什么
比如
< ?php $table_change = array('you'=>'her sister'); $table_change += array('love' => 'hate'); echo strtr("i love you",$table_change); ?>
结果是
i hate her sister
str_replace
替换
替换的意义在于将一个字符串的一部分进行改动,使之成为别外一个新的字符串,以满足新的需求。php里通常用str_replace("要替换的内容", "要取代原内容的字符串", "原字符串")进行替换。
echo str_replace("iwind", "kiki", "i love iwind, iwind said"); // 将输出 "i love kiki, kiki said"
即将 原字符串中的所有"iwind"都替换成了"kiki".
str_replace是大小写敏感的,所以对你不能设想用 str_replace("iwind", "kiki",...)替换原字符串中的"iwind".
str_replace还能实现多对一,多对多的替换,但无法实现一对多的替换:
echo str_replace(array("iwind", "kiki"), "people", "i love kiki, iwind said");
将会输出
i love people, people said
第一个参数中的array("iwind", "kiki")都被替换成了"people"
echo str_replace(array("iwind", "kiki"), array("gentle man", "ladies"), "i love kiki, iwind said");
输出 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。
和此有些类似的是strtr,
此外,php还提供了substr_replace,实现替换一部分的字符串。语法如下:
substr_replace (原字符串, 要替代的字符串, 开始替换的位置 [, 替换的长度])
其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。
echo substr_replace("abcdefgh", "def", 3); // 将输出 "abcdef"
echo substr_replace("abcdefgh", "def", 3, 2); // 将输出 "abcdeffgh"
第一个例子中,从第三个位置(即"d")开始替换,从而把 "defgh"都替换成了“def”
第二个例子中,也是从第三个位置(即"d")开始替换,但只能替换2个长度,即到e,所以就把"de"替换成了"def".
php还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换,用法请参考手册。
定义和用法
str_replace() 函数使用一个字符串替换字符串中的另一些字符。
语法
str_replace(find,replace,string,count)参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。
提示和注释
注释:该函数对大小写敏感。请使用 str_ireplace() 执行对大小写不敏感的搜索。
注释:该函数是二进制安全的。
例子
例子 1
<?php
echo str_replace("world","john","hello world!");
?>
//php代码
$mobilephone=trim($_post["smmobilephone"]);
//手机号码的正则验证
if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$mobilephone)){
//验证通过
}else{
//手机号码格式不对
}
//这只是一个不精确的验证,只能大概验证到一个范围而已,所以重点还在后面。
//手机号码验证二
$tel = "15905789568";
$ab = preg_match("/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/",$tel);
/*
说明:
^表示这符开始(元字符)
$表示字符结尾(元字符)
13为普通字符
[0-9]表示一个0-9的数字
{9} 表示匹配9次
后面的号码,如果是13开头的,中间有9个数字,并结尾,则符合条件
*/
if($ab)
{
echo "手机号对了";
}
else
echo "不是手机号,乱填!!!!";
//再来一款手机号验证程序
function checkmobile($str)
{
$pattern = "/^(13|15)d{9}$/";
if (preg_match($pattern,$str))
{
return true;
}
else
{
return false;
}
}
//调用函数
$str = checkmobile("15800000001");
if($str)
{
echo("符合手机号码标准");
}
else
{
echo("不符合手机号码标准");
}
?>
文章提供了多款关于多维数据排序方法,这是一款php数据排序代码,如果你还搞不清楚如何排序的话,这里的实例肯定可以帮助到你了哦。代码如下 | 复制代码 |
//对多个数组排序 $ar1 = array("10", 100, 100, "a"); var_dump($ar1); //本例中经过排序后,第一个数组将包含 "10","a",100,100。第二个数组将包含 1,1,"2",3。第二个数组中的项目顺序完全和第一个数组中相应的项目(100 和 100)顺序一致。 $ar = array(array("10", 11, 100, 100, "a"), array( 1, 2, "2", 3, 1) ); array_multisort($ar[0], sort_asc, sort_string, $ar[1], sort_numeric, sort_desc); var_dump($ar); /* 排序类型标志: 每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 sort_asc 和 sort_regular */ function cmp($a, $b) $fruits[0]["fruit"] = "lemons"; usort($fruits, "cmp"); while (list($key, $value) = each($fruits)) { //看一个完善的 $data=array( $arr1 = sortdata($data, "name","asc"); $arr2 = sortdata($data, "age","desc");
foreach($data as $key => $val){ |
?>