php date()函数各参数详解

 更新时间:2016年11月25日 16:46  点击:2172
在php中date()函数是可以获取时间日期的函数,可能大家常用的就年月日了,下面我来给大分享date()函数一此不为人知的参数。

date()函数

这个函数就比较熟悉了

 代码如下 复制代码

<?php
echo("Result with date():<br />");
echo(date("l") . "<br />");
echo(date("l dS of F Y h:i:s A") . "<br />");
echo("Oct 3,1975 was on a ".date("l", mktime(0,0,0,10,3,1975))."<br />");
echo(date(DATE_RFC822) . "<br />");
echo(date(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "<br /><br />");

echo("Result with gmdate():<br />");
echo(gmdate("l") . "<br />");
echo(gmdate("l dS of F Y h:i:s A") . "<br />");
echo("Oct 3,1975 was on a ".gmdate("l", mktime(0,0,0,10,3,1975))."<br />");
echo(gmdate(DATE_RFC822) . "<br />");
echo(gmdate(DATE_ATOM,mktime(0,0,0,10,3,1975)) . "<br />");
?>

Result with date():
Wednesday
Wednesday 22nd of December 2010 02:36:18 AM
Oct 3,1975 was on a Friday
Wed, 22 Dec 10 02:36:18 +0000
1975-10-03T00:00:00+00:00

Result with gmdate():
Wednesday
Wednesday 22nd of December 2010 02:36:18 AM
Oct 3,1975 was on a Friday
Wed, 22 Dec 10 02:36:18 +0000
1975-10-03T00:00:00+00:00

附上PHP手册里的date()函数参数说明

a - "am" 或是 "pm"
A - "AM" 或是 "PM"
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
h - 12 小时制的小时; 如: "01" 至 "12"
H - 24 小时制的小时; 如: "00" 至 "23"
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
i - 分钟; 如: "00" 至 "59"
j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
l - 星期几,英文全名; 如: "Friday"
m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
M - 月份,三个英文字母; 如: "Jan"
s - 秒; 如: "00" 至 "59"
S - 字尾加英文序数,二个英文字母; 如: "th","nd"
t - 指定月份的天数; 如: "28" 至 "31"
U - 总秒数
w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
Y - 年,四位数字; 如: "1999"
y - 年,二位数字; 如: "99"
z - 一年中的第几天; 如: "0" 至 "365" 

解决PHP Header下载文件在IE文件名中文乱码有两种常见的,一种是是把页面编码改成utf8,另一种是对中文url进入urlencode编码就可以解决了。

解决方案一(我的页面是utf-8编码):

 代码如下 复制代码

    $filename = "中文.txt";
    $ua = $_SERVER["HTTP_USER_AGENT"];
    $encoded_filename = urlencode($filename);
    $encoded_filename = str_replace("+", "%20", $encoded_filename);
    header('Content-Type: application/octet-stream');
    if (preg_match("/MSIE/", $ua)) {
    header('Content-Disposition: attachment; filename="' . $encoded_filename . '"');
    } else if (preg_match("/Firefox/", $ua)) {
    header('Content-Disposition: attachment; filename*="utf8''' . $filename . '"');
    } else {
    header('Content-Disposition: attachment; filename="' . $filename . '"');
    }

解决方法二

将文件名先urlencode一下再放入header,如下。
代码如下:

 代码如下 复制代码
<?php
$file_name = urlencode($_REQUEST['filename']);
header("Pragma: public"); header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Transfer-Encoding: binary");
header('Content-Disposition: attachment; filename='.$file_name);
echo stripslashes($_REQUEST['content']);
?>
本文章来给各位同学总结一下在php中一些常用的文件夹/文件目录操作函数总结,这些只是简单的介绍一些基础方法,希望对入门者有所帮助。

php文件夹操作函数


string basename ( string path [, string suffix] )

给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。

在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

 

string dirname ( string path )

 

给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。

在 Windows 中,斜线(/)和反斜线()都可以用作目录分隔符。在其它环境下是斜线(/)。

 

array pathinfo ( string path [, int options] )

 

pathinfo() 返回一个联合数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。

可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。

 

string realpath ( string path )

 

realpath() 扩展所有的符号连接并且处理输入的 path 中的 ‘/./’, ‘/../’ 以及多余的 ‘/’ 并返回规范化后的绝对路径名。返回的路径中没有符号连接,’/./’ 或 ‘/../’ 成分。

realpath() 失败时返回 FALSE,比如说文件不存在的话。在 BSD 系统上,如果仅仅是 path 不存在的话,PHP 并不会像其它系统那样返回 FALSE。

 


bool is_dir ( string filename )

 

如果文件名存在并且为目录则返回 TRUE。如果 filename 是一个相对路径,则按照当前工作目录检查其相对路径。

注: 本函数的结果会被缓存。更多信息参见 clearstatcache()。

 


resource opendir ( string path [, resource context] )

 

打开一个目录句柄,可用于之后的 closedir(),readdir() 和 rewinddir() 调用中。


string readdir ( resource dir_handle )

 

返回目录中下一个文件的文件名。文件名以在文件系统中的排序返回。


void closedir ( resource dir_handle )

 

关闭由 dir_handle 指定的目录流。流必须之前被 opendir() 所打开。


void rewinddir ( resource dir_handle )

 

将 dir_handle 指定的目录流重置到目录的开头。

 


array glob ( string pattern [, int flags] )

 

glob() 函数依照 libc glob() 函数使用的规则寻找所有与 pattern 匹配的文件路径,类似于一般 shells 所用的规则一样。不进行缩写扩展或参数替代。

返回一个包含有匹配文件/目录的数组。如果出错返回 FALSE。

 

有效标记为: 

GLOB_MARK - 在每个返回的项目中加一个斜线
GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)
GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式
GLOB_NOESCAPE - 反斜线不转义元字符
GLOB_BRACE - 扩充 {a,b,c} 来匹配 ‘a’,’b’ 或 ‘c’
GLOB_ONLYDIR - 仅返回与模式匹配的目录项
 

注: 在 PHP 4.3.3 版本之前 GLOB_ONLYDIR 在 Windows 或者其它不使用 GNU C 库的系统上不可用。

GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误

注: GLOB_ERR 是 PHP 5.1 添加的。

 

php文件目录操作


新建文件

1、先确定要写入文件的内容

$content = '你好';

2、打开这个文件(系统会自动建立这个空文件)

//假设新建的文件叫file.txt,而且在上级目录下。w表示‘写文件’,$fp下面要用到,表示指向某个打开的文件。

$fp = fopen('../file.txt', 'w');

3、将内容字符串写入文件

//$fp告诉系统要写入的文件,写入的内容是$content

fwrite($fp, $content);

4、关闭文件

fclose($fp); 

说明:PHP5中提供了更方便的函数file_put_contents,上面的4步可以这样完成:

$content = '你好';

file_put_contents('file.txt',$content);

 

删除文件

//删除当前目录下的arch目录下的文件abc.txt

unlink('arch/abc.txt');

说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:

$deleteResult = unlink('arch/abc.txt');

 

获取文件内容

//假设获取的目标文件名是file.txt,而且在上级目录下。获取的内容放入$content。

$content = file_get_contents('../file.txt');

 

修改文件内容

操作方法与新建内容基本一样

 

重命名文件或目录

//将当前目录下的子目录a下面的文件1.gif重命名为2.gif。

rename('/a/1.gif', '/a/2.gif');

说明:对目录也一样。系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否重命名成功。

$renameResult = rename('/a/1.gif', '/a/2.gif');

如果要移动文件或目录,只要将重命名后的路径设置为新的路径就可以了:

//将当前目录下的子目录a下面的文件1.gif,移动到当前目录下的子目录b,并且重命名为2.gif。

rename('/a/1.gif', '/b/2.gif');

不过要注意,如果目录b不存在,就会移动失败。

 

复制文件

//将当前目录下的子目录a下面的文件1.gif,复制到当前目录下的子目录b,并命名为2.gif。

copy('/a/1.gif', '/b/1.gif');

说明:不能对目录进行此项操作。

如果目标文件(上面的/b/1.gif)已经存在,原来的文件将被覆盖。

系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否复制成功。

$copyResult = copy('/a/1.gif', '/b/1.gif');

 

移动文件或目录

操作方法和重命名一样

 

文件或目录是否存在

//检查上级目录下的文件logo.jpg是否存在。

$existResult = file_exists('../logo.jpg');

说明:如果文件存在系统返回true,否则返回false。可以对目录进行同样的操作。

 

获取文件大小

//获取上级目录下的文件logo.png的大小。

$size = filesize('../logo.png');

说明:系统会返回一个数字,表示文件的大小是多少字节(bytes)。

 

新建目录

//在当前目录下的目录a下面新建目录b。

mkdir('/a/b');

说明:系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否新建成功:

$mkResult = mkdir('/a/b');

 

删除目录

//删除当前目录下的目录a下面的子目录b。

rmdir('/a/b');

说明:只能删除非空的目录,否则必须先删除目录下的子目录和文件,再删除总目录

系统会返回操作结果,成功则返回 TRUE,失败则返回 FALSE,可以用变量接收,就知道是否删除成功:

$deleteResult = rmdir('/a/b');

 

获取目录中的所有文件名

1、先打开要操作的目录,并用一个变量指向它

//打开当前目录下的目录pic下的子目录common。

$handler = opendir('pic/common');

2、循环的读取目录下的所有文件

/*其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,为了不陷于死循环,所以还要让$filename !== false。一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环*/

while( ($filename = readdir($handler)) !== false )  {

      3、目录下都会有两个文件,名字为'.'和‘..’,不要对他们进行操作

      if($filename != "." && $filename != "..") {

      4、进行处理

      //这里简单的用echo来输出文件名

      echo $filename;

      }

}

5、关闭目录

closedir($handler);

 

对象是否是目录

//检查上级目录下的目标对象logo.jpg是否是目录。

$checkResult = is_dir('../logo.jpg');

说明:如果目标对象是目录系统返回true,否则返回false。上面例子的$checkResult当然是false。

 

对象是否是文件

//检查上级目录下的目标对象logo.jpg是否是文件。

$checkResult = is_file('../logo.jpg');

说明:如果目标对象是文件,系统返回true,否则返回false。上面例子的$checkResult当然是true。

在php中empty(), isset(), is_null()三个函数在很多朋友看来都差不多,但我们简单想一下好像又不同,一个空值,一个是否是一个变量,是否为null,下面我来举例来说明。

很多人对于 PHP 的 empty(),isset() 及 is_null() 三个函数的用法比较模糊,网上的资料也很多,但未必能讲的清楚,下面给出一个测试实例,对于理解这三个函数的区别会有很大的好处。

 

测试的类型如下:

 <?php
$a;
$b = false;
$c = '';
$d = 0;
$e = null;
$f = array();
?> 

 
empty()
 

 代码如下 复制代码

<?php
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));
var_dump(empty($d));
var_dump(empty($e));
var_dump(empty($f));
?>

// 输出
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true) 

从代码中可以看出,只要数据类型是否为空或假,empty()就输出true。

  isset()
 

 代码如下 复制代码

<?php
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));
var_dump(isset($d));
var_dump(isset($e));
var_dump(isset($f));
?>

// 输出
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true) 

可以看出isset()只能用来判断是否为NULL和未定义。

 
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined()函数。
当要 判断一个变量是否已经声明的时候 可以使用 isset 函数
当要 判断一个变量是否已经赋予数据且不为空 可以用 empty 函数
当要 判断 一个变量 存在且不为空 先isset 函数 再用 empty 函数

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:

 代码如下 复制代码

$id=0;
    empty($id)?print "It's empty .":print "It's $id .";
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .


这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。

当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:

 代码如下 复制代码


if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1


可分开运行以下代码检测上述推断:

 代码如下 复制代码


 if(empty($id)) $id=1;
    print $id; // 得到 1

    if(!isset($id)) $id=1;
print $id; //得到 0

 

is_null()
 

 代码如下 复制代码

<?php
var_dump(is_null($a));
var_dump(is_null($b));
var_dump(is_null($c));
var_dump(is_null($d));
var_dump(is_null($e));
var_dump(is_null($f));
?>

// 输出
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false) 

is_null 字面意思了。

 由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。

后来给大家附一张表

下面一张表可以很清楚的说明他们之间的关系:

变量                             empty          is_null          isset
$a=””                          true               false              true
$a=null                      true               true              false
var $a                         true              true               false
$a=array()               true               false              true
$a=false                    true               false              true
$a=15                        false              false               true
$a=1                           false              false               true
$a=0                          true               false               true
$a=”0”                      true               false                true
$a=”true”                false               false              true
$a=”false”               false               false               true

本文章来给各位同总结一下在php中func_get_args()、func_get_arg()与func_num_args()三个函数的用法与区别对比,各位同学不防参考参考。

今天用到这个几个内置函数,记录下以便返查
func_num_args()   返回调用函数的传入参数个数,类型是整型

func_get_arg()   返回指定的参数值

func_get_args()   返回全部参数的值,类型是数组

func_get_args
返回一个包含函数参数列表的数组

描述

array func_get_args( void )
此函数返回一数组,数组的各个元素相当于是目前使用者定义函数的各个参数。如果是从函数定义的外面来呼叫此函数,则func_get_args()将会产生警告。


func_get_arg
从函数参数列表返回指定参数

描述


mixed func_get_arg( int arg_num )
传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE。


--------------------------------------------------------------------------------


func_num_args
返回传递到函数的参数数目

描述


int func_num_args( void )
此函数返回传递到目前定义函数的参数数目。如果是从函数定义的外面来呼叫此函数,则func_num_args()将会产生警告。

func_num_args()可以用来结合func_get_arg()和func_get_args(),来允许使用者定义的函数接受可变长度参数列表。在我们构建PHP类的时候,灵活使用这三个函数,可以起到非常理想的效果,例如外面在创建PHP和MYSQL链接的类时,可以书写如下代码:

 

 代码如下 复制代码
<?php
class mydb{
private $user;
private $pass;
private $host;
private $db;
public function __construct(){
$num_args=func_num_args();
if($num_args>0){
$args=func_get_args();
$this->host=$args[0];
$this->user=$args[1];
$this->pass=$args[2];
this->connect();
}
}
……..
?>

下面是手册上的一个例子:

 代码如下 复制代码

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />n";
    }
}

foo(1, 2, 3);
?>

输出结果是:
Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3

[!--infotagslink--]

相关文章

  • php正确禁用eval函数与误区介绍

    eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
  • php中eval()函数操作数组的方法

    在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
  • Python astype(np.float)函数使用方法解析

    这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08
  • Python中的imread()函数用法说明

    这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 金额阿拉伯数字转换为中文的自定义函数

    CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
  • Nest.js参数校验和自定义返回数据格式详解

    这篇文章主要给大家介绍了关于Nest.js参数校验和自定义返回数据格式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-28
  • C++中 Sort函数详细解析

    这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
  • Android开发中findViewById()函数用法与简化

    findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20
  • PHP用strstr()函数阻止垃圾评论(通过判断a标记)

    strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
  • Vue 组件复用多次自定义参数操作

    这篇文章主要介绍了Vue 组件复用多次自定义参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-27
  • jquery validate demo 基础

    jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自...2015-10-30
  • PHP函数分享之curl方式取得数据、模拟登陆、POST数据

    废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07
  • php中的foreach函数的2种用法

    Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
  • C语言中free函数的使用详解

    free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
  • 解决Springboot get请求是参数过长的情况

    这篇文章主要介绍了解决Springboot get请求是参数过长的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
  • PHP函数strip_tags的一个bug浅析

    PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
  • PHP中empty和isset对于参数结构的判断及empty()和isset()的区别

    废话不多说了,直接给大家贴代码了。<&#63;php class test{} $a1 = null; $a2 = ""; //$a3 = $a4 = 0; $a5 = '0'; $a6 = false; $a7 = array(); //var $a8; $a9 = new test(); for ($i=1; $i <=9 ; $i++) {...2015-11-24
  • PHP加密解密函数详解

    分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30