php写入、删除、复制文件及创建修改时间例子

 更新时间:2016年11月25日 15:45  点击:1362
本文章来给大家总结一个关于php写入、删除、复制文件及创建修改时间例子,有碰到此类的同学可进入参考。

例子1:

读写文件

 代码如下 复制代码

<?php
$filename = 'txt/write.txt';
//定义要写入的内容
$content = "李先生 36 山东nr王先生 49 湖南nr孙先生 40 河北";
//使用is_writable()函数确定文件存在并且可写
if(is_writable($filename)){
//把文件写入到文件尾,应选择操作标记a
if(false == ($handle = fopen($filename, 'a'))){
echo "文件 $filename 打开失败";
exit();
}
//将$content写入打开的文件
if(fwrite($handle, $content) === false){
echo "写入文件 $filename 失败";
exit();
}
echo "写入文件 $filename 成功";
//关闭句柄
fclose($handle);
}else{
echo "文件 $filename 没有写权限";
}
?>

php写入文件例子2:

 代码如下 复制代码

<?php
$filename = "Test\file.txt";
$file = fopen($filename, "w");      //以写模式打开文件
fwrite($file, "Hello, world!n");      //写入第一行
fwrite($file, "This is a test!n");      //写入第二行
fclose($file);         //关闭文件
?>

删除文件:

 代码如下 复制代码

<?php
$filename = "Test\file.txt";
unlink($filename);    //删除文件
?>

复制文件:

 代码如下 复制代码

<?php
$filename1 = "Test\file.txt";
$filename2 = "Test\file.bak";
copy($filename1, $filename2);      //复制文件
?>

文件创建、修改、访问时间

实例

 代码如下 复制代码

< ?php
$a=filectime("log.txt");
echo "创建时间:".date("Y-m-d H:i:s",$a)."
";
$a=filemtime("log.txt");
echo "修改时间:".date("Y-m-d H:i:s",$a)."
";
$a=fileatime("log.txt");
echo "访问时间:".date("Y-m-d",$a)."
";
?>

PHP fileatime()函数
定义和用法
fileatime() 函数返回指定文件的上次访问时间。

该函数返回文件上次被访问的时间。如果出错则返回 false。时间以 Unix 时间戳的方式返回。

语法
fileatime(filename)  filename 必需。规定要检查的文件。

提示和注释
提示:本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。

注释:文件的 atime 应该在不论何时读取了该文件中的数据块时被更改。当一个应用程序定期访问大量文件或目录时很影响性能。有些 Unix 文件系统可以在加载时关闭 atime 的更新以提高这类程序的性能。USENET 新闻组假脱机是一个常见的例子。在这种文件系统下,本函数没有用处

在php中Session经常用来验证用户注册或登录之后的验证了,下面我来总结session变量的一些常用实例与用法介绍。

当您运行一个应用程序时,您会打开它,做些更改,然后关闭它。这很像一次会话。计算机清楚你是谁。它知道你何时启动应用程序,并在何时终止。但是在因特网上,存在一个问题:服务器不知道你是谁以及你做什么,这是由于 HTTP 地址不能维持状态。
通过在服务器上存储用户信息以便随后使用,PHP session 解决了这个问题(比如用户名称、购买商品等)。不过,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久储存信息,可以把数据存储在数据库中。

把手册抄一下,然后每个都试试然后写出来,方便自己查阅滴,谁让咱刚学呢。Session大概有12个函数分别是:

session_start: 初始 session。
session_destroy: 结束 session。
session_unset: 释放session内存。
session_name: 存取目前 session 名称。
session_module_name: 存取目前 session 模块。
session_save_path: 存取目前 session 路径。
session_id: 存取目前 session 代号。
session_register: 注册新的变量。
session_unregister: 删除已注册变量。
session_is_registered: 检查变量是否注册。
session_decode: Session 资料解码。
session_encode: Session 资料编码。

还有个全局变量就是:$_SESSION


在您把用户信息存储到 PHP session 中之前,首先必须启动会话。
注释:session_start() 函数必须位于 标签之前:

 代码如下 复制代码
<?php session_start(); ?>
 
<html>
<body>
 
</body>
</html>

 

存储 Session 变量

 代码如下 复制代码
<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
 
<html>
<body>
 
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
 
</body>
</html>

 

终结 Session
unset() 函数用于释放指定的 session 变量:

 代码如下 复制代码
<?php
unset($_SESSION['views']);
?>

 

您也可以通过 session_destroy() 函数彻底终结 session:

 代码如下 复制代码
<?php
session_destroy();
?>

 

 代码如下 复制代码

<?php
session_start();
switch ( $_GET['action'] ){
case "loginif";
//登陆验证,假定session储存的秘密应该等于123才为正确
if ($_SESSION['pass']=="123"){echo "密码正确 您可以执行注销";}else{echo "密码错误,您可以重新登陆";}
break;
case "logout";
//注销登陆
session_unset();
session_destroy();
echo "注销成功!可以判断一下密码是否正确来看看是不是成功注销";
break;
case "login";
//写入session以供验证,
$pass="123";//密码
$_SESSION['pass']=$pass;
echo "写入登陆密码了 去判断密码成功与否吧。";
break;
}
?>
<p>假定本页名为temp.php </p>
<p><a href="temp.php?action=login">用户进行登陆post,程序处理写入session</a></p>
<p><a href="temp.php?action=loginif">判断用户密码是否正确</a></p>
<p><a href="temp.php?action=logout">登陆成功的用户注销登陆</a></p>

我总结了一下php中session的用法。


(一)开始session
  在每一次使用session之前,都要加上这一句:“session_start();”。顾名思义,这个函数的作用就是开始使用session。
(二)注册session
  首先要建立一个global(注意,一定要定义为global,不然在其它页面用不了)数组,如$login,其中$login['name']="Victor",$login['pwd']="111111",然后调用函数“session_register(login);”,session就成功注册了。
(三)使用session里面的变量
  和注册session类似,都要先建立一个global数组,然后就和使用一般数组一样了。
(四)判断session是否注册
  很简单,用“if (session_is_registered(login))”判断就可以了。
(五)卸载session
  也很简单,“session_unregister(login);”就可以了。
  注意:在进行(二)(三)(四)(五)之前一定要先进行(一)。


下面给出一个例子:

index.htm

 代码如下 复制代码

<html>
<head>
<title>测试</title>
</head>
<body>
<FORM METHOD=POST ACTION="login.php">
用户名:<INPUT TYPE="text" NAME="name"><br/>
密码:<INPUT TYPE="password" name="pwd"><br/>
<INPUT TYPE="submit" value="提交">
</FORM>
</body>
</html>


login.php

 代码如下 复制代码

<?php
global $login;
if ($_POST['name']!="Victor" || $_POST['pwd']!="111111")
{
        echo "登陆失败";
        echo "请<a href=index.htm>返回</a>";
        exit;
}
$login = array('name'=>$_POST['name'],
                           'pwd'=>$_POST['pwd']);
session_start();
session_register(login);
echo "<a href=info.php>查看信息</a><br/>";
echo "<a href=logout.php>退出登陆</a><br/>";
?>


info.php

 代码如下 复制代码

<?php
session_start();
if (session_is_registered(login))
{
        global $login;
        echo "hello,".$login['name']."<br/>";
        echo "<a href=logout.php>退出登陆</a><br/>";
}
else
{
        echo "非法操作<br/>";
        exit;
}
?>


logout.php

 代码如下 复制代码


<?php
session_start();
session_unregister(login);
header("location:index.htm");
?>

ip地址转成十进制数是根据的公式算出来的:74×256^3+30×256^2+10×256+243 = 1243482867或者说分别将IP地址的四位数字化成十六进制,将得到的十六进制去掉\"小数点\"后再化为十进制即可。

PHP 中如何将ip地址转成十进制数呢?现在PHP中有很多时候都会用到ip地址,但是这个ip地址获取的时候都不是10进制的。那么PHP中如何将ip地址转成十进制数就是我们比较头疼的事情了,下面两种方法是我整理处理来相对比较简单的IP地址转成十进制数的方法。希望能对大家有所帮助。

方法一:

 代码如下 复制代码

public function ipToLong(){
        $ip = $_SERVER['REMOTE_ADDR'];
        $ip = explode('.', $ip);
        $ip = array_reverse($ip);//数组反转
        $r = 0;
        for($i=0,$j=count($ip); $i<$j; $i++){
            $r += $ip[$i] * pow(256, $i);
        }
        $r = sprintf("%u", $r);
        echo $r;
}

方法二:

 代码如下 复制代码

public function ipToLong(){
        $ip = $_SERVER['REMOTE_ADDR'];
        $ip = explode('.',$ip);
        $r = ($ip[0] << 24) | ($ip[1] << 16) | ($ip[2] << 8) | $ip[3];
        if($r < 0) $r += 4294967296;
        echo $r ;
}

两个结果在本地服务器中的结果都是3232235877,运用的ip是192.168.1.101。我们用ping 192.168.1.101 和 ping 3232235877来进行检测,看是否一样。

可能有些朋友不知道mysql与php中都提供了IP转换十进制数函数

MySQL 提供了INET_ATON 和 INET_NTOA 两个函数来进行地址和整数之间的转换。

1. IP 由点分格式,转换为数字格式。

 代码如下 复制代码

mysql> select inet_aton('127.0.0.1');
+------------------------+
| inet_aton('127.0.0.1') |
+------------------------+
| 2130706433 |
+------------------------+
1 row in set (0.00 sec)

2. IP 由数字格式转换为点分格式。

 代码如下 复制代码

mysql> select inet_ntoa(2130706433);
+-----------------------+
| inet_ntoa(2130706433) |
+-----------------------+
| 127.0.0.1 |
+-----------------------+
1 row in set (0.00 sec)


php可直接使用ip2long函数

 代码如下 复制代码


echo ip2long('192.168.1.38');
输出:3232235814

今天我们来介绍利用phpqrcode来生成二维码,这量个不错的php二维码生成程序,各位朋友可参考。

PHP生成二维码的方式有多种,可以利用google开放的API,可以利用php QR Code类库生成,本文着重介绍使用php QR Code类库来生成二维码。
1、代码包下载地址:http://sourceforge.net/projects/phpqrcode/
2、下载下来的压缩包里面有很多示例,可以自行研究,下面给出一个简单的使用案例:

 代码如下 复制代码

include "phpqrcode/phpqrcode.php";
$data='http://www.111cn.net';
$errorCorrectionLevel="L";
$matrixPointSize="4";
QRcode::png($data,false,$errorCorrectionLevel,$matrixPointSize);

官方法实例

 代码如下 复制代码

<?php
# include这两个文件之一:
/*
qrlib.php for full version (also you have to provide all library files
form package plus cache dir)

OR phpqrcode.php for merged version (only one file,
but slower and less accurate code because disabled cache
and quicker masking configured)
*/
# 两句话解释:
# 包含qrlib.php的话需要同其它文件放到一起:文件、文件夹。
# phpqrcode.php是合并后版本,只需要包含这个文件,但生成的图片速度慢而且不太准确
# 以下给出两种用法:

# 创建一个二维码文件
QRcode::png('code data text', 'filename.png');
// creates file

# 生成图片到浏览器
QRcode::png('some othertext 1234');
// creates code image and outputs it directly into browser
?>

3、有的二维码中间有图片,其实就是把图片拷贝到已经生成的二维码图片上,你懂得。


利用google生成二维码的开放接口,代码如下

 代码如下 复制代码

/**
 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】
 * @param string $data 二维码包含的信息,可以是数字、字符、二进制信息、汉字。不能混合数据类型,数据必须经过UTF-8 URL-encoded.如果需要传递的信息超过2K个字节,请使用POST方式
 * @param int $widhtHeight 生成二维码的尺寸设置
 * @param string $EC_level 可选纠错级别,QR码支持四个等级纠错,用来恢复丢失的、读错的、模糊的、数据。
 *                         L-默认:可以识别已损失的7%的数据
 *                         M-可以识别已损失15%的数据
 *                         Q-可以识别已损失25%的数据
 *                         H-可以识别已损失30%的数据
 * @param int $margin 生成的二维码离图片边框的距离
 */
function generateQRfromGoogle($data,$widhtHeight='150',$EC_level='L',$margin='0'){
 $url=urlencode($data);
 echo '<img src="http://chart.apis.google.com/chart?chs='.$widhtHeight.'x'.$widhtHeight.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$data.'" widhtHeight="'.$widhtHeight.'" widhtHeight="'.$widhtHeight.'"/>';
}

调用方法

 代码如下 复制代码

$data='版权所有:http://www.111cn.net/';
generateQRfromGoogle($data);

本文章来给大家介绍关于PHP计算上一个月的今天 今天是星期几的程序演示实例过程,各位有需要了解的朋友可参考。

 上一个月的今天

strtotime 有个小问题

 代码如下 复制代码

> php -r”echo date(‘Ymd000000′,strtotime ( ‘-1 month’, strtotime ( ’201307310000′ ) ));”
20130701000000#
> php -r”echo date(‘Ymd000000′,strtotime ( ‘-1 month’, strtotime ( ’201308010000′ ) ));”
20130701000000#


此时,想起PHP中有一个mktime函数,于是写了如下代码

 代码如下 复制代码


echo date("Y-m-d H:i:s", mktime(date("G", $time), date("i", $time),
date("s", $time), date("n", $time) - 1, date("j", $time), date("Y", $time)));


当执行时,发现结果和strtotime的结果是一样的。

 

搜了一下,下面的方法更准确一些

 代码如下 复制代码

$time = strtotime("2011-03-31");

/**
 * 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天
 * @param type $time
 * @return type
 */
function last_month_today($time){
    $last_month_time = mktime(date("G", $time), date("i", $time),
                date("s", $time), date("n", $time), 0, date("Y", $time));
    $last_month_t =  date("t", $last_month_time);

    if ($last_month_t < date("j", $time)) {
        return date("Y-m-t H:i:s", $last_month_time);
    }

    return date(date("Y-m", $last_month_time) . "-d", $time);
}

echo last_month_today($time);

这里需要注意一点: date(”Y-m”, $last_month_time) . “-d” 这段代码。在写代码的过程中如果写成了 “Y-” . date(”m”, $last_month_time) . “-d” 则在跨年的时间上有问题

今天是星期几

 代码如下 复制代码


<?php echo date('Y-m-d',strtotime('-1 month')); ?>

恩…好像是对的..不过..这个函数有个问题,
如果月份的天数不同,结果就是错的.
加入今天是2012-03-31,计算上个月的今天,那么结果就是2012-03-03;
PHP有个函数 mktime,它可以取得日期的时间戳:
int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
根据给出的参数返回 Unix 时间戳。时间戳是一个长整数,包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数。

参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
所以可以通过它来计算

 代码如下 复制代码

function last_month_day($time){    
$strtime=mktime(date('h',$time),date('i',$time),date('s',$time),date('m',$time)-1,date('d',$time),date('Y',$time));    

echo date('Y-m-d',$strtime); }  last_month_day(strtotime("2012-03-31"));


输出的结果是2012-03-02;按理说应该是输出2012-02-31????笨蛋2月有31号吗?没,有30号吗,没?有29号吗?..这个..可以有…
PHP给我们处理了这种情况,他会多出几天按下个月来算.
2012年2月最后一天是2012-02-29那么31号比29多两天,所以PHP就累加到下个月来处理 就是2012-03-02啦.
差点忘了..那么星期几怎么算呢??不用算啦..PHP给我们准备好了.
date(‘w’,$strtime);输出的就是一周中的第几天.就是星期几了.

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • mysql中获取一天、一周、一月时间数据的各种sql语句写法

    创建表:复制代码 代码如下:create table if not exists t( id int, addTime datetime default '0000-00-00 00:00:00′)添加两条初始数据:insert t values(1, '2012-07-12 21:00:00′);insert t values(2, '2012-07...2014-05-31
  • .NET/C# 使用Stopwatch测量运行时间

    这篇文章主要介绍了.NET/C# 使用Stopwatch测量运行时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?n:^(?=d)((?<day>31(?!(.0?[2469]|11))|30(?!.0?2)|29(...2016-11-25
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • MyBatis-Plus的物理删除和逻辑删除(使用场景)

    数据库中的数据删除会分为两种:物理删除 和 逻辑删除,接下来通过本文给大家介绍MyBatis-Plus的物理删除和逻辑删除使用场景分析,感兴趣的朋友一起看看吧...2021-09-25
  • C#中动态显示当前系统时间的实例方法

    想在网页中动态地显示当前系统的时间,找了好多,不过都是一些停在那里不动的。。。不过皇天不负有心人,终于让我找到了...2020-06-25
  • postgresql 中的时间处理小技巧(推荐)

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • 从chrome调试工具中把拖延时间的东西找出来

    我打开android开发手册的时候:http://www.csdn123.com/html/android/reference/packages.html 发现打开速度很慢,我用按了一下F12打开调试面板,切换到网络的选项卡network...2016-05-19
  • C# 当前系统时间获取及时间格式详解

    这篇文章主要介绍了C# 当前系统时间获取及时间格式详解的相关资料,这里提供代码实例,帮助大家学习参考,需要的朋友可以参考下...2020-06-25
  • 帝国CMS显示指定时间内更新的信息数量

    /*解决代码高亮太长不换行*/ .syntaxhighlighter{word-break:break-all;} uParse('#newstext', {rootPath: '/e/extend/ueditor/'}) 帝国CMS显示指定时间内更新的信息数...2016-11-01
  • C#使用TimeSpan时间计算的简单实现

    这篇文章主要给大家介绍了关于C#使用TimeSpan时间计算的相关资料,以及通过一个实例代码给大家介绍了C#使用timespan和timer完成一个简单的倒计时器的方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧...2020-06-25
  • mybatis-plus getOne和逻辑删除问题详解

    这篇文章主要介绍了mybatis-plus getOne和逻辑删除,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-26
  • C#获取文件创建时间的方法

    这篇文章主要介绍了C#获取文件创建时间的方法,涉及C#文件操作的技巧及CreattionTime属性的使用方法,需要的朋友可以参考下...2020-06-25
  • PowerShell中使用Get-Date获取日期时间并格式化输出的例子

    这篇文章主要介绍了PowerShell中使用Get-Date获取日期时间并格式化输出的例子,本文讲解了直接调用Get-Date、在Write-Host中使用Get-Date、格式化输出的方法,需要的朋友可以参考下...2020-06-30