PHP无聊的星期天晚间

session_start(); $_SESSION[‘name’] = ‘jobs’; $_SESSION[‘time’] =
time(); unset($_SESSION); session_destroy(); var_dump($_SESSION);
//此时已为空

$filename = ‘./test.txt’; $data = ‘test’; file_put_contents($filename,
$data);

测试删除成功后,输出为

–使用session

<?php
$filename = ‘/data/webroot/usercode/code/resource/test.txt’;
echo ‘所有者:’.fileowner($filename).'<br>’;
echo ‘创设时间:’.filectime($filename).'<br>’;
echo ‘修改时间:’.filemtime($filename).'<br>’;
echo ‘最终访问时间:’.fileatime($filename).'<br>’;

运用fopen打开的文件,最好使用fclose关闭文件指针,以防止文件句柄被挤占。

$mtime = filemtime($filename);
echo '修改时间:'.date('Y-m-d H:i:s', filemtime($filename));

–获得文件的修改时间

在PHP中利用session十分不难,先举行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写。

取得错误暴发的所在行

在分外被捕获之后,大家可以透过极度处理对象得到其中的至极信息,后面大家早就通晓捕获格局,以及取得基本的错误音讯。

在实质上采取中,大家一般会取得丰硕多的老大音信,然后写入到不当日志中。

通过大家要求将报错的文书名、行号、错误新闻、分外追踪音信等记录到日志中,以便调试与修复问题。

<?php
try {
throw new Exception(‘wrong’);
} catch(Exception $ex) {
$msg = ‘Error:’.$ex->getMessage().”\n”;
$msg.= $ex->getTraceAsString().”\n”;
$msg.= ‘非常行号:’.$ex->getLine().”\n”;
$msg.= ‘所在文书:’.$ex->getFile().”\n”;
//将格外音讯记录到日志中
file_put_contents(‘error.log’, $msg);
}

 

 

由此filesize函数可以拿走文件的分寸,文件大小是以字节数表示的。

–使用session来存储用户的登录音讯

cookie中的路径用来支配装置的cookie在哪些路径下有效,默许为’/’,在具备途径下都有,当设定了别样路线之后,则只在设定的门路以及子路径下有效,例如:

设若必要同时灭绝cookie中的session_id,平常在用户退出的时候也许会用到,则还索要显式的调用setcookie方法删除session_id的cookie值。

session_start(); $_SESSION[‘name’] = ‘jobs’; $_SESSION[‘time’] =
time(); session_destroy();

$fp = fopen(‘./text.txt’, ‘rb’); $contents = ”; while(!feof($fp)) {
$contents .= fread($fp, 4096); //五次读取4096个字符 } fclose($fp);

一旦要刨除所有的session,可以应用session_destroy函数销毁当前session,session_destroy会删除所有数据,然而session_id依然存在。

近日是礼拜三,的夜晚,因为回寝室也如同没什么事情做,不如在教研室水一水。

$content = file_get_contents(‘./test.txt’, null, null, 100, 500);

function getsize($size, $format = 'kb') {
    $p = 0;
    if ($format == 'kb') {
        $p = 1;
    } elseif ($format == 'mb') {
        $p = 2;
    } elseif ($format == 'gb') {
        $p = 3;
    }
    $size /= pow(1024, $p);
    return number_format($size, 3);
}

$filename = '/data/webroot/usercode/code/resource/test.txt';
$size = filesize($filename);

$size = getsize($size, 'kb'); //进行单位转换
echo $size.'kb';

fwrite($fp, ‘hello’);

抛出一个百般

从PHP5先导,PHP协助尤其处理,卓殊处理是面向对象一个第一特征,PHP代码中的十分通过throw抛出,分外抛出之后,前面的代码将不会再被实践。

既是抛出尤其会搁浅程序执行,那么为啥还须求运用格外处理?

老大抛出被用于在碰到未知错误,或者不吻合预先设定的尺度时,公告客户程序,以便进行其他相关处理,不至于使程序直接报错中断。

当代码中使用了try
catch的时候,抛出的不胜会在catch中抓获,否则会间接中断。

 

1、基本语法
        try{
            //可能出现错误或特其他代码
            //catch表示捕获,Exception是php已定义好的不得了类
        } catch(Exception $e){
            //对那多少个处理,方法:
                //1、自己处理
                //2、不处理,将其再一次抛出
        }
2、处理处理程序应当包罗:
Try – 使用相当的函数应该放在 “try”
 代码块内。假使没有接触非凡,则代码将照常继续执行。然则借使不行被触发,会抛出一个分外。
Throw – 那里规定怎么样触发至极。注意:每一个 “throw” 必须相应至少一个
“catch”,当然可以对应七个”catch”
Catch – “catch” 代码块会捕获十分,并创立一个包括万分信息的目的。

//创建可抛出一个异常的函数
function checkNum($number){
     if($number>1){
         throw new Exception("异常提示-数字必须小于等于1");
     }
     return true;
 }

//在 "try" 代码块中触发异常
 try{
     checkNum(2);
     //如果异常被抛出,那么下面一行代码将不会被输出
     echo '如果能看到这个提示,说明你的数字小于等于1';
 }catch(Exception $e){
     //捕获异常
     echo '捕获异常: ' .$e->getMessage();
 }

地点代码将收获接近那样一个错误:

破获非凡:: 万分提醒-数字必须低于等于1

事例解释:

上边的代码抛出了一个丰硕,并抓获了它:

创制 checkNum() 函数。它检测数字是不是超过 1。如果是,则抛出一个可怜。
在 “try” 代码块中调用 checkNum() 函数。
checkNum() 函数中的很是被抛出
“catch” 代码块接收到该尤其,并创办一个暗含格外音讯的目的 ($e)。
透过从那几个 exception 对象调用
$e->getMessage(),输出来自该特其他错误音讯

<?php
$filename = ‘test.txt’;
try {
if (!file_exists($filename)) {
throw new Exception(‘文件不设有’);
}
} catch(Exception $e) {
echo $e->getMessage();
}

PHP默许安装了GD库,安装的时候供给敞开

出口图像文件

前面大家曾经通晓到,通过imagepng可以直接出口图像到浏览器,不过过多时候,大家意在将处理好的图像保存到文件,以便可以屡屡行使。通过点名路线参数将图像保存到文件中。

$filename = 'img.png';
imagepng($img, $filename);

行使imagepng可以将图像保存成png格式,要是要保存成其他格式要求利用区其余函数,使用imagejpeg将图片保存成jpeg格式,imagegif将图片保存成gif格式,须要证实的是,imagejpeg会对图纸展开压缩,因此还是能安装一个质量参数。

$filename = 'img.jpg';
​imagejpeg($img, $filename, 80);

--

得到当前的日子

例子://date函数,第三个参数取默许值的情状

打探原理未来,大家也足以直接通过header来删除cookie。

$filename = '/data/webroot/usercode/code/resource/test.txt';
$size = filesize($filename);

PHP设置Cookie最常用的主意就是接纳setcookie函数,setcookie具有7个可选参数,大家常用到的为前5个:

 

PHP具有充裕的文书操作函数,最简便易行的读取文件的函数为file_get_contents,可以将全体文件全部读取到一个字符串中。

相似景观下在对文本进行操作的时候须要先判断文件是还是不是存在,PHP中常用来判断文件存在的函数有多个is_file与file_exists.

–判断文件是不是留存、可读、可写

–总结

cookie相对不是太安全,简单被盗用导致cookie欺骗
单个cookie的值最大不得不存储4k
老是请求都要拓展网络传输,占用带宽

$content = file_get_contents(‘./test.txt’);

在图像中绘制文字

GD库可以进行多种图形的基本操作,常用的有绘制线条,背景填充,画矩形,绘制文字等。

跟绘制线条类似,首先须求新建一个图纸与初始化颜色。

$img = imagecreatetruecolor(100, 100);
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);

下一场使用imagestring函数来开展文字的绘图,那一个函数的参数很多:imagestring
( resource $image , int $font , int $x , int $y , string $s , int $col
),可以通过$font来安装字体的高低,x,y设置文字呈现的地点,$s是要绘制的文字,$col是文字的水彩。

imagestring($img, 5, 0, 0, "Hello world", $red);
header("content-type: image/png");
imagepng($img);
imagedestroy($img);
--
fileowner:获得文件的所有者
filectime:获取文件的创建时间
filemtime:获取文件的修改时间
fileatime:获取文件的访问时间

setcookie(‘test’, time(), 0, ‘/path’);

–设置Cookie:

session_start(); $_SESSION[‘name’] = ‘jobs’;
unset($_SESSION[‘name’]); echo $_SESSION[‘name’]; //提示name不存在

再次回到值:函数日期和岁月

<?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”);


setcookie(),setsession(),unset()

session是将用户的对话数据存储在服务端,没有轻重限制,通过一个session_id举办用户识别,PHP默许情况下session
id是经过cookie来保存的,因而从某种程度上的话,seesion依赖于cookie。但那不是纯属的,session
id也得以因此参数来促成,只要能将session
id传递到服务端进行甄其余建制都可以应用session。

<?php
$value = time();
//在此间安装一个名为test的库克ie
setcookie(“test”,$value);
if (isset($_COOKIE[‘test’])) {
echo ‘success’;
}

—-文件系统—-

一般的话,登录音讯既可以储存在sessioin中,也得以储存在cookie中,他们中间的反差在于session可以方便的存取多种数据类型,而cookie只协理字符串类型,同时对于一些安全性比较高的数额,cookie要求举行格式化与加密存储,而session存储在服务端则安全性较高。

–读取文件内容

值得注意的是,没办法通过简单的函数来博取目录的尺寸,目录的尺寸是该目录下所有子目录以及文件大小的总额,由此要求经过递归的办法来循环总计目录的轻重。

注意:session_start是个函数

session可以用来存储多连串型的数量,因而具有许多的用处,常用来存储用户的报到音信,购物车数据,或者有些暂时采用的暂存数据等。

–删除文件

默许情形下,session是以文件方式储存在服务器上的,由此当一个页面打开了session之后,会独占这一个session文件,那样会招致当前用户的任何并发访问无法执行而等待。能够动用缓存或者数据库的形式储存来化解那个问题,那个大家会在有的高级的科目中讲到。

foreach (glob("*") as $filename) {
   unlink($filename);
}

时间戳,表示时间点

 

—日期和时间—

获取日期的Unix时间戳

因为库克(Cook)ie是透过HTTP标头举办设置的,所以也得以一贯采纳header方法进行安装。

name( 库克ie名)可以透过$_COOKIE[‘name’] 进行访问
value(Cookie的值)
expire(过期日子)Unix时间戳格式,默许为0,表示浏览器关闭即失效
path(有效路径)借使路径设置为’/’,则全部网站都使得
domain(有效域)默许整个域名都使得,若是设置了’www.imooc.com’,则只在www子域中有效

  hi

$filename = ‘./test.txt’; if (is_writeable($filename)) {
file_put_contents($filename, ‘test’); } if (is_readable($filename)) {
echo file_get_contents($filename); }
–写入内容

绘图线条

要对图片举办操作,首先要新建一个画布,通过imagecreatetruecolor函数能够成立一个真彩色的空域图片:

$img = imagecreatetruecolor(100, 100);

GD库中对此画笔所用的颜料,需求经过imagecolorallocate函数举行分红,通过参数设定RGB的颜色值来规定画笔的水彩:

$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);

接下来我们透过调用绘制线段函数imageline举行线条的绘图,通过点名起源跟终点来最后得到线条。

imageline($img, 0, 0, 100, 100, $red);

线条绘制好将来,通过header与imagepng举行图像的出口。

header("content-type: image/png");
imagepng($img);

最终可以调用imagedestroy释放该图形占用的内存。

imagedestroy($img);

经过地点的步子,可以发现PHP绘制图形万分的概括,但过多时候我们不可是亟需输出图片,可能大家还索要获得一个图纸文件,可以经过imagepng函数指定文件名将绘制后的图像保存到文件中。

imagepng($img, 'img.png');

<?php
$img = imagecreatetruecolor(100, 100);
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);
//在此地运用imageline绘制线条
imageline($img,0,10,90,80,$red);
header(“content-type: image/png”);
imagepng($img);
imagedestroy($img);

如出一辙的,PHP也支撑类似C语言风格的操作方法,选取fwrite进行文件写入。

–session(会话)和cookie

PHP提供了安置函数strtotime完结效益:获取某个日期的日子戳,或得到某个时刻的光阴戳。例如:

值得注意的是,session_destroy并不会立时的绝迹全局变量$_SESSION中的值,唯有当下次再拜访的时候,$_SESSION才为空,由此只要需求及时销毁$_SESSION,可以使用unset函数。

当我们设置了有效路径的时候,不在当前路线的时候则看不到当前cookie。

file_get_contents也得以透过参数控制读取内容的始发点以及长度。

00:00:00′)

将格式化的日子字符串转换为Unix时间戳

strtotime函数预期接受一个带有美利坚联邦合众国西班牙王国(The Kingdom of Spain)语日期格式的字符串并尝试将其分析为
Unix 时间戳。

函数表明:strtotime(要分析的小时字符串,
统计再次来到值的时辰戳【默许是眼前的时间,可选】)
重返值:成功则赶回时间戳,否则再次回到 FALSE

比如

echo
strtotime(“now”);//相当于将英文单词now直接等于现在的日子和岁月,并把这一个日期时间转载为unix时间戳。那个功用跟echo
time();一样。 echo strtotime(“+1
seconds”);//相当于将现在的日子和岁月累加了1秒,并把这些日期时间转载为unix时间戳。这一个效果跟echo
time()+1;一样。 echo strtotime(“+1
day”);//约等于将于今的日期和岁月累加了1天。 echo strtotime(“+1
week”);//相当于将现在的日期和时间累加了1周。 echo strtotime(“+1 week 3
days 7 hours 5

函数表达:date(时间戳的格式, 规定时间戳【默许是眼前的日期和时间,可选】)

setcookie(‘test’, ”, time()-1);

//给$mtime赋值为文件的改动时间
$mtime = filemtime($filename);
//通过总结时间差 来判断文件内容是不是有效
if (time() – $mtime > 3600) {
echo ‘<br>缓存已过期’;
} else {
echo file_get_contents($filename);
}

$fp = fopen(‘./text.txt’, ‘rb’); while(!feof($fp)) { echo fgets($fp);
//读取一行 } fclose($fp);

–cookie的实用途径

诚如意况下,大多是行使所有途径的,唯有在极少数有例外必要的时候,会设置路径,那种情状下只在指定的门径中才会传递cookie值,可以节约多少的传输,增强安全性以及加强性能

转移图像验证码

大概的验证码其实就是在图片中输出了多少个字符,通过大家眼前章节讲到的imagestring函数就能促成。

而是在处理上,为了使验证码尤其的安全,幸免其余程序自动识别,由此平时须求对验证码进行局地惊动处理,经常会选用绘制一些噪点,苦恼线段,对出口的字符进行倾斜、扭曲等操作。

可以选拔imagesetpixel绘制点来促成噪点烦扰,不过只绘制一个点的作用不大,由此那里日常会利用循环举办任意绘制。

<?php
$img = imagecreatetruecolor(100, 40);
$black = imagecolorallocate($img, 0x00, 0x00, 0x00);
$green = imagecolorallocate($img, 0x00, 0xFF, 0x00);
$white = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
imagefill($img,0,0,$white);
//生成随机的验证码
$code = ”;
for($i = 0; $i < 4; $i++) {
$code .= rand(0, 9);
}
imagestring($img, 5, 10, 10, $code, $black);
//插手噪点困扰
for($i=0;$i<50;$i++) {
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $black);
imagesetpixel($img, rand(0, 100) , rand(0, 100) , $green);
}
//输出验证码
header(“content-type: image/png”);
imagepng($img);
imagedestroy($img);

cookie将数据存储在客户端,建立起用户与服务器之间的维系,平常可以解决许多题目,可是cookie依然保有部分受制:

–删除cookie

unlink($filename);

//当需求动用时开展解密
$str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $secureKey,
base64_decode($str), MCRYPT_MODE_ECB);
$uinfo = unserialize($str);
echo “解密后的用户音讯:<br>”;
var_dump($uinfo);

通过前边的章节,大家询问了设置cookie的函数,不过大家却发现php中从未删除Cookie的函数,在PHP中除去cookie也是选拔setcookie函数来促成。

–获得文件的深浅

UNIX 时间戳(英文名叫:timestamp)是 PHP
中有关时间与日期的一个很首要的定义,它意味着从 1970年十月1日 00:00:00
到当下时光的秒数之和。

上边的装置会使test在/path以及子路径/path/abc下都有效,可是在根目录下就读取不到test的cookie值。

输出为NULL

/* 将用户消息保存到session中 */
$_SESSION[‘uid’] = $userinfo[‘uid’];
$_SESSION[‘name’] = $userinfo[‘name’];
$_SESSION[‘userinfo’] = $userinfo;
echo “welcome “.$_SESSION[‘name’] . ‘<br>’;

删除某个session值可以应用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

seconds”);//相当于将现在的日期和岁月累加了1周3天7钟头5秒。

格式化格林(Green)威治(GMT)标准时间

gmdate 函数能格式化一个GMT的日期和时间,重返的是格林(Green)威治标准时(GMT)。

举个例子,大家现在随处的中华时区是东八区,超过格林(Green)威治时间8个钟头,有时候也叫GMT+8,那么服务器运行以下脚本再次来到的时刻应当是那般的:
当前岁月一旦是2014-05-01 15:15:22 echo date(‘Y-m-d H:i:s’, time());
//输出为:2014-05-01 15:15:22 echo gmdate(‘Y-m-d H:i:s’, time());
//输出为:2014-05-01 07:15:22
因为格林(格林(Green))威治时间是明天中华时区的小运减去8个钟头,所以相对于前日时间要少8个小时

—-图形图像操作—-
–GD库
Graphic
Device,PHP的GD库是用来拍卖图片的拓展库;常用来处理加水印和生成验证码的操作

可以见见将cookie的超时时间设置到当下时刻从前,则该cookie会自动失效,也就完结了删除cookie的目标。之所以那样设计是因为cookie是透过HTTP的标头来传递的,客户端按照服务端重返的Set-Cookie段来开展cookie的安装,假使剔除cookie要求使用新的Del-库克ie来促成,则HTTP头就会变得复杂,实际上仅透过Set-库克(Cook)ie就可以简单明了的贯彻库克ie的安装、更新与删除。

session会自动的对要设置的值举办encode与decode,因而session能够襄助任意数据类型,包蕴数据与目的等。

–得到当前的Unix时间戳

session_start(); $_SESSION[‘test’] = time(); var_dump($_SESSION);

array(0) {
}

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;

文本有众多元属性,包蕴:文件的持有者、创建时间、修改时间、最终的造访时间等。

file_put_contents(),filemtime(),filesize(),unlink()

给图片添加水印

给图片添加水印的法子一般有两种,一种是在图片上边加上一个字符串,另一种是在图纸上加上一个logo或者其余的图片。

因为那边处理的是早已存在的图片,所以可以一向从已存在的图纸建立画布,通过imagecreatefromjpeg可以直接从图片文件创立图像。

$im = imagecreatefromjpeg($filename);

成立图像对象未来,大家就足以经过前边的GD函数,绘制字符串到图像上。即使要加的水印是一个logo图片,那么就须要再建立一个图像对象,然后通过GD函数imagecopy将logo的图像复制到源图像中。

$logo = imagecreatefrompng($filename);
imagecopy($im, $logo, 15, 15, 0, 0, $width, $height);

当将logo图片复制到原图片上之后,将加水印后的图形输出保存就完了了加水印处理。

imagejpeg($im, $filename);

<?php
//那里只有是为了案例须求预备一些素材图片
$url =
http://www.iyi8.com/uploadfile/2014/0521/20140521105216901.jpg‘;
$content = file_get_contents($url);
$filename = ‘tmp.jpg’;
file_put_contents($filename, $content);
$url =
http://wiki.ubuntu.org.cn/3b/Qref\_Edubuntu\_Logo.png‘;
file_put_contents(‘logo.png’, file_get_contents($url));
//开头添加水印操作
$im = imagecreatefromjpeg($filename);
$logo = imagecreatefrompng(‘logo.png’);
$size = getimagesize(‘logo.png’);
imagecopy($im, $logo, 15, 15, 0, 0, $size[0], $size[1]);

header(“content-type: image/jpeg”);
imagejpeg($im);

—–相当处理—–

php内置了date()函数,来博取当前的日期。

//* 将用户数量保存到cookie中的一个简单方法 */
$secureKey = ‘imooc’; //加密密钥
$str = serialize($userinfo); //将用户新闻种类化
echo “用户音讯加密前:”.$str;
$str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $secureKey,
$str, MCRYPT_MODE_ECB));
echo “用户音讯加密后:”.$str;
//将加密后的用户数量存储到cookie中
setcookie(‘userinfo’, $str);

用户在签到成功将来,平时可以将用户的新闻存储在session中,一般的会独自的将部分器重的字段单独存储,然后所有的用户新闻独立存储。

—Cookie—

file_get_contents(),file_exists(),is_file(),is_writeable(),is_readable()

*echo date(“Y-m-d”);//2014-03-30 //date函数,第四个参数有值的情况 echo
date(“Y-m-d”,’1396193923′);//2014-03-30,1396193923代表2014-03-30的unix时间戳–

UNIX 时间戳(英文名叫:timestamp)是 PHP
中关于时间与日期的一个很重点的概念,它象征从 1970年十二月1日 00:00:00
到当前时光的秒数之和。

$time = time();

echo $time;//1396193923,这个数字表示从1970年1月1日 00:00:00 到我输出这个脚本时经历了1396193923秒

 

fwrite($fp, ‘world’); fclose($fp);

1、PHP

–总结

尤其规范的可以行使is_readable与is_writeable在文书是或不是留存的根基上,判断文件是还是不是可读与可写。

$filename = ‘./test.txt’; if (is_file($filename)) { echo
file_get_contents($filename); }

–极度处理类

PHP具有众多格外处理类,其中Exception是富有越发处理的基类。

Exception具有多少个着力性能与艺术,其中囊括了:

message 很是音讯内容
code 格外代码
file 抛出至极的文件名
line 抛出更加在该文件的行数

里头常用的不二法门有:

getTrace 得到卓殊追踪信息
getTraceAsString 获取很是追踪新闻的字符串
getMessage 得到出错音讯

若是须求的话,可以由此继承Exception类来树立自定义的可怜处理类。

//自定义的异常类,继承了PHP的异常基类Exception
class MyException extends Exception {
    function getInfo() {
        return '自定义错误信息';
    }
}

try {
    //使用异常的函数应该位于 "try"  代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
    throw new MyException('error');//这里规定如何触发异常。注意:每一个 "throw" 必须对应至少一个 "catch",当然可以对应多个"catch"
} catch(Exception $e) {//"catch" 代码块会捕获异常,并创建一个包含异常信息的对象
    echo $e->getInfo();//获取自定义的异常信息
    echo $e->getMessage();//获取继承自基类的getMessage信息
}

<?php
class MyException extends Exception {
function getInfo() {
return ‘自定义错误新闻’;
}
}

try {
throw new MyException(‘error’);
} catch(Exception $e) {
echo $e->getInfo();
}

PHP中还有一个安装Cookie的函数setrawcookie,setrawcookie跟setcookie基本等同,唯一的两样就是value值不会活动的开展urlencode,由此在急需的时候要手动的开展urlencode。

抓获极度信息

在打听了老大处理的基本原理之后,大家得以经过try
catch来捕获非常,大家将实施的代码放在try代码块中,一旦中间的代码抛出分外,就能在catch中捕获。

这边我们只是经过案例来打探try
catch的编制以及那多少个捕获的章程,在实际上利用中,不会随随便便的抛出格外,唯有在极端情况或者格外首要的场馆下,才会抛出非凡,抛出尤其,可以保持程序的不利与安全,幸免造成不可预见的bug。

一般的非凡处理流程代码为:

try {
    throw new Exception('wrong');
} catch(Exception $ex) {
    echo 'Error:'.$ex->getMessage().'<br>';
    echo $ex->getTraceAsString().'<br>';
}
echo '异常处理后,继续执行其他代码';

<?php
try {
throw new Exception(‘wrong’);
} catch(Exception $ex) {
echo ‘Error:’.$ex->getMessage().'<br>’;
echo $ex->getTraceAsString().'<br>’;
}
echo ‘相当处理后,继续执行其余代码’;

跟Unix系统命令类似,PHP使用unlink函数举办文件删除。

借使文件夹中设有文件,可以先循环删除目录中的所有文件,然后再删除该目录,循环删除可以选取glob函数遍历所有文件。

echo strtotime(‘2014-04-29’);//1398700800,这一个数字代表从1970年6月1日
00:00:00 到二零一四年3月29号经历了1398700800秒 echo strtotime(‘2014-04-29
00:00:01’);//1398700801,那一个数字代表从1970年四月1日 00:00:00
到2014-04-29 00:00:01时经历了1398700801秒
我们发现下面的法则了啊,其实strtotime(‘2014-04-29’)相当于strtotime(‘2014-04-29

PHP提供了摆设函数 time()
来取得服务器当前时刻的年月戳。那么获取当前的UNIX时间戳就很粗略了。

<?php
//补充路径参数,完毕有效路径的设置
setcookie(‘test’, ‘1’, 0,’/path’);
var_dump($_COOKIE[‘test’]);

除去文件夹使用rmdir函数,文件夹必须为空,若是不为空或者尚未权限则会唤起失利。

rmdir($dir);

即使要转移文件大小的单位,可以协调定义函数来落到实处。

$filename = ‘./test.txt’; if (file_exists($filename)) { echo
file_get_contents($filename); }

$fp = fopen(‘./test.txt’, ‘w’);

与读取文件对应,PHP写文件也具备三种方法,最简易的法子是使用file_put_contents。

PHP也提供类似于C语言操作文件的法门,使用fopen,fgets,fread等办法,fgets能够从文件指针中读取一行,freads能够读取指定长度的字符串。

上例中,$data参数能够是一个一维数组,当$data是数组的时候,会自行的将数组连接起来,相当于$data=implode('', $data);

–删除与销毁session

即使只是一口咬定文件存在,使用file_exists就行,file_exists不仅可以看清文件是不是留存,同时也得以判断目录是不是存在,从函数名可以看看,is_file是恰当的判定给定的路线是还是不是是一个文本。

session_start(); $_SESSION[‘ary’] = array(‘name’ => ‘jobs’);
$_SESSION[‘obj’] = new stdClass(); var_dump($_SESSION);

里头最常用的是文件的改动时间,通过文件的改动时间,可以判明文件的时效性,日常用在静态文件或者缓存数据的换代。

相关文章