COOKIE
- cookie设置值
name( Cookie名)可以通过$_COOKIE['name'] 进行访问
value(Cookie的值)
expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
path(有效路径)如果路径设置为'/',则整个网站都有效
domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效
<?php
$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600); //有效期一小时
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域
setcookie('test', '', time()-1); // 删除cookie
?>
- session使用
//开始使用session
session_start();
$_SESSION["name"] = "jobs";
echo $_SESSION['name'];
unset($_SESSION['name']);
- 删除与销毁session
session_start();
$_SESSION['name'] = 'jobs';
//在这里删除name的session值
unset($_SESSION['name']);
if (isset($_SESSION['name'])) {
echo $_SESSION['name'];
}
- 使用session来存储用户的登录信息
<?php
session_start();
//假设用户登录成功获得了以下用户数据
$userinfo = array(
'uid' => 10000,
'name' => 'spark',
'email' => 'spark@imooc.com',
'sex' => 'man',
'age' => '18'
);
header("content-type:text/html; charset=utf-8");
/* 将用户信息保存到session中 */
$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['name'] = $userinfo['name'];
$_SESSION['userinfo'] = $userinfo;
//* 将用户数据保存到cookie中的一个简单方法 */
$secureKey = 'imooc'; //加密密钥
$str = serialize($userinfo); //将用户信息序列化
//用户信息加密前
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));
//用户信息加密后
//将加密后的用户数据存储到cookie中
setcookie('userinfo', $str);
//当需要使用时进行解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo "解密后的用户信息:<br>";
print_r($uinfo);
文件系统
- PHP文件系统之判断文件是否存在
<?php
// PHP中常用来判断文件存在的函数有两个is_file与file_exists.
$filename = '/data/webroot/usercode/code/resource/test.txt';
//判断如果$filename文件存在的话 就输出文件内容
if(file_exists($filename)){
// file_exists不仅可以判断文件是否存在,同时也可以判断目录是否存在,从函数名可以看出,is_file是确切的判断给定的路径是否是一个文件。
$content = file_get_contents($filename); // 取得文件内的内容
echo $content;
}
- PHP文件系统之取得文件的修改时间
fileowner:获得文件的所有者
filectime:获取文件的创建时间
filemtime:获取文件的修改时间
fileatime:获取文件的访问时间
<?php
$filename = 'test.txt';
$mtime = filemtime($filename);
//判断如果$filename文件存在的话 就输出文件内容
if(time()-$mtime>3600){
echo "缓存过期";
}else{
echo file_get_contents($filename);
}
?>
- 文件系统之删除文件
unline($filename);
PHP异常
- PHP异常之处理异常
<?php
$number = 2;
function checkNumber($number){
if($number>1){
throw new Exception("异常提示:数字必须小于等于1");
}
return false;
}
try{
checkNumber($number);
echo "如果你看到,代表数字小于等于1";
}catch(Exception $e){
echo $e->getMessage();
}
- PHP异常之异常类
Exception具有几个基本属性与方法,其中包括了:
message 异常消息内容
code 异常代码
file 抛出异常的文件名
line 抛出异常在该文件的行数
其中常用的方法有:
getTrace 获取异常追踪信息
getTraceAsString 获取异常追踪信息的字符串
getMessage 获取出错信息
<?php
header("content-type:text/html, charset=utf-8");
class MyException extends Exception
{
function getInfo()
{
return "自定义信息";
}
}
try {
throw new MyException("error");
} catch (MyException $e) {
echo $e->getInfo();
}
- PHP异常处理之捕获异常信息
<?php
header("content-type:text/html, charset=utf-8");
try {
throw new Exception("wrong");
} catch (Exception $e) {
echo $e->getMessage() . "<BR>";
var_dump($e->getTrace());
echo "<BR>" . $e->getTraceAsString();
}
echo "异常处理后,继续执行其他代码";
- 异常处理之获取错误发生所在行
<?php
header("content-type:text/html, charset=utf-8");
try {
throw new Exception("wrong");
} catch (Exception $e) {
$msg = "Error:" . $e->getMessage() . "\n";
$msg .= $e->getTraceAsString() . "\n";
$msg .= '异常行号' . $e->getLine() . "\n";
$msg .= '异常文件' . $e->getFile() . "\n";
file_put_contents("error.log", $msg); // 会自动创建文件
}
网友评论