PHP中strtotime函数用法

 更新时间:2016年11月25日 16:47  点击:2139
strtotime函数在php中是可以把日志转换成时间戳,他可以方便的让我们对日期时间分秒的计算,下面我来给各位介绍时strtotime函数用法,有需要的同学可参考。

1.获取当前的时间的时间戳!

a.实用strtotime('now');来获取当前的时间戳!(因为PHP当前时间和真是时间相差8小时)

 代码如下 复制代码

1 echo date('Y-m-d H:i:s',strtotime('now')+8*60*60);
结果:2013-04-05 03:15:02

b.你也可以用time() 来直接获取!

 代码如下 复制代码


1 echo date('Y-m-d H:i:s',time()+8*60*60);
结果:2013-04-05 03:15:02

2.获取10天之后的时间戳:

使用方法:

 代码如下 复制代码
1 strtotime("+10 days")+8*60*60

输出10天后的日期,便于查看。

 代码如下 复制代码

1 echo date('Y-m-d H:i:s',strtotime("+10 days")+8*60*60);

结果:2013-04-15 03:15:02

3.获取一周的时间戳:


使用方法:

 代码如下 复制代码

1 strtotime("+1 week")+8*60*60

或者你使用上面按天来获取时间戳.写法如:

 代码如下 复制代码

strtotime("+7 days");

4.还可以获取指定几周几天几小时几秒来获取时间戳

使用方法:

 代码如下 复制代码

1 strtotime ("+1 week 2 days 4 hours 2 seconds")+8*60*60
1 echo date('Y-m-d H:i:s',strtotime ("+1 week 2 days 4 hours 2 seconds")+8*60*60);

结果:2013-04-12 07:15:04;

5.获取上周一或者下周四的时间戳:

使用方法:

a.获取上周一的时间戳:

 代码如下 复制代码

1 strtotime ("last Monday")+8*60*60
1 echo date('Y-m-d H:i:s',strtotime ("last Monday")+8*60*60);

结果:2013-04-01 08:00:00;


b.获取下周四的时间戳

 代码如下 复制代码

1 strtotime ("next Thursday")+8*60*60
1 echo date('Y-m-d H:i:s',strtotime ("next Thursday")+8*60*60);

结果:2013-04-11 08:00:00;


strtotime函数比较两个时间的大小


strtotime()函数对两个固定的时间进行比较,如下:
    1):定义两个固定的时间;

    2):通过strtotime()函数将固定时间转换成时间戳;

    3):对两个时间戳的值进行比较。

其实例代码如下:

 代码如下 复制代码

<?php
$time="2012年11月23日15时50时20秒";
$times="2013-01-14 09:09:09";
if(strtotime($time)-strtotime($times)<0){
 echo "时间:".$time."&nbsp;早于时间:".$times;
}else{
 echo "时间:".$times."&nbsp;早于时间:".$time;
}
echo "<br />它们相差的时间值是:".(strtotime($time)-strtotime($times))
?>

上面的代码运行结果如下:

时间:2012年11月23日15时50时20秒 早于时间:2013-01-14 09:09:09
它们相差的时间值是:-1358125749

在php中读取本地文件我们最常用的就是fopen与fread函数配置使用即可了,还有一些其它的像php file_get_contents可以读本地文件也可以读远程文件了,下面我们来一一介绍一下。

fopen() 函数
直接打开文件

 代码如下 复制代码

<?php
$file = "111.txt";
$fp = fopen($file,"r");
if ($fp){
 while(!feof($fp)){
  //第二个参数为读取的长度
  $data = fread($fp, 1000);
 }
 fclose($fp);
}
echo $data;
?>

file_get_contents() 函数把整个文件读入一个字符串中

例子

 代码如下 复制代码

<?php
echo file_get_contents("test.txt");
?>

输出:

This is a test file with test text.

php读取本地文件夹文件

 代码如下 复制代码

<?php
$dir = opendir('/movie');
while(($file = readdir($dir))!=false){
  if ($file!="." && $file!="..") {
    $ns = explode('.', $file);
    echo $ns[0];
  }
}
closedir($dir);

?>

preg_match_all函数是用来获取指定数据内容的,它经常用于执行正则表达多,下面我来给大家介绍两个关于preg_match_all函数实现教程,一个是获取url参数,一个是获取内容中图片方法。

preg_match_all — 执行一个全局正则表达式匹配

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )

 代码如下 复制代码

<?php
preg_match_all("|<[^>]+>(.*)</[^>]+>|U",
    "<b>example: </b><div align=left>this is a test</div>",
    $out, PREG_PATTERN_ORDER);
echo $out[0][0] . ", " . $out[0][1] . "n";
echo $out[1][0] . ", " . $out[1][1] . "n";
?>

如何获取伪静态url中的参数变量,已经对应的值。

比如说。你现在url的是这样的。/js/d1b3cid419299191rs好脚本

你的.htaccess文件会这样写rewirte规则 RewriteRule ^js/(.*)$ /index.php?m=Sell&a=index&g=$1 [QSA,PT,L]

这样你就可以把g接收过来。

 代码如下 复制代码

$get = 'd1b3cid419299191rs好脚本';
$rs_pos = strpos($get,'rs');
if($rs_pos !== false)
{
    $rs = substr($get,$rs_pos);
    $rs = str_replace('rs','',$rs);
    $rs = strpos($rs,'/')!==false ? substr($rs,0,strpos($rs,'/')) : $rs;
    $get = substr($get,0,$rs_pos);
}
echo 'keywords='.$rs;
echo '<br>';
preg_match_all('/([a-z]*)([0-9]+)/',$get,$m);
if($m)
{
        $k = $v = '';
        $count = count($m[1]);
        for($i = 0; $i <= $count; $i++)
        {
            ${$m[1][$i]} = $m[2][$i];
            if(isset(${$m[1][$i]}))
            {   
                echo $m[1][$i].'='.${$m[1][$i]};
                echo '<br>';
            }
        }
}

结果:keywords=好脚本,d=1,b=3,cid=419299191

 

匹配文章中的图片

 

 代码如下 复制代码

<?php
$con = file_get_contents("http://www.111cn.net/");
$pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg|.png]))['|"].*?[/]?>/";
preg_match_all($pattern,$con,$match);
print_r($match);
?>

输出代码

Array
(
[0] => Array
(
[0] => <img src="http://www.111cn.net/usr/themes/dddefault/images/logo.png" alt="" />
[1] => <img style="display: block; margin-left: auto; margin-right: auto;" title="" src="http://www.111cn.net/usr/uploads/2012/09/531656480.jpg" alt="2" />
[2] => <img style="display: block; margin-left: auto; margin-right: auto;" src="http://www.111cn.net/usr/uploads/2012/09/2647136297.jpg" alt="875EA1C00E50B4542797E24FA6E7E1F2.jpg" />
)
[1] => Array
(
[0] => http://www.111cn.net/usr/themes/dddefault/images/logo.png
[1] => http://www.111cn.net/usr/uploads/2012/09/531656480.jpg
[2] => http://www.111cn.net/usr/uploads/2012/09/2647136297.jpg
)
)

file_get_contents函数多用来于来采集远程服务器上的内容,但使用file_get_contents函数之前我们在php.ini中是必须把allow_url_fopen开启才行

问题描述

fopen(),file_get_contents(),getimagesize() 等都不能正常获得网络上的内容,具体表现为凡参数是URL的,一律返回空值

如果是windows可找开

allow_url_fopen开启

如果是否linux中可以

重新编译PHP,去掉–with-curlwrapper 参数——编译前记得先执行 make clean。


windows 在未开户allow_url_fopen时我们利用

 代码如下 复制代码

< ?php
$file_contents = file_get_contents(''http://www.111cn.net/'');
echo $file_contents;
?>

是获取不到值的,但我们可以利用function_exists来判断此函数是否可用。

 代码如下 复制代码


function file_get_content($url) {
if (function_exists(‘file_get_contents')) {
$file_contents = @file_get_contents($url);
}
if ($file_contents == ”) {
$ch = curl_init();
$timeout = 30;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
}
return $file_contents;
}

本文章给大家全面的介绍一下关于php中var_dump()函数用法详解,大家可参考参考。

var_dump()

void var_dump ( mixed expression [, mixed expression [, ...]] )

var_dump()方法是判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型.
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。


例1

 代码如下 复制代码

<?php
$a = "alsdflasdf;a";
$b = var_dump($a);
echo "<br>";
//var_dump($c);
$d=var_dump($c);
echo "<br>";
echo $a;
echo "<br>";
echo $b;
echo "<br>";
输出:
string(12) "alsdflasdf;a"
NULL
alsdflasdf;a

例2

1. var_dump() 示例

 代码如下 复制代码

<pre>
<?php
$a = array (1, 2, array ("a", "b", "c"));
var_dump ($a);

/* 输出:
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  array(3) {
    [0]=>
    string(1) "a"
    [1]=>
    string(1) "b"
    [2]=>
    string(1) "c"
  }
}

*/

$b = 3.1;
$c = TRUE;
var_dump($b,$c);

/* 输出:
float(3.1)
bool(true)

*/
?>
</pre> 

 
var_export和serialize做数组缓存


$str = serialize($arr);
这两种机制转换之后的字符串是不一样的,第一种是数组的原型模式,第二种是序列化后的形式。第一 种存入文件中的只要加上<?php ?>标签,就形式了一个可用的数组原型,对调用来说,不用转换,直接返回这个数组就可以,但第二种,则需要再用一次unserialize函数反序 列化一下。对于第种一说,就多了一步操作。下来我们用数据说话吧:

 

 代码如下 复制代码

<?
set_time_limit(50);
$a = array(1,2,3);
$b = array('a'=>1, 'b'=>2, 'c'=>3);
$c = array('a'=>array(1,2,3), 'b'=>array(4,5,6));


$time1 = microtime(true);


$times = 1000000; #10w


for($i=1; $i<=$times; $i++){
 $A = var_export($a, true);
}


$time2 = microtime(true);


for($i=1; $i<=$times; $i++){
 $B = var_export($b, true);
}


$time3 = microtime(true);


for($i=1; $i<=$times; $i++){
 $C = var_export($c, true);
}


$time4 = microtime(true);


for($i=1; $i<=$times; $i++){
 $X = serialize($a);
}


$time5 = microtime(true);


for($i=1; $i<=$times; $i++){
 $Y = serialize($b);
}


$time6 = microtime(true);


for($i=1; $i<=$times; $i++){
 $Z = serialize($c);
}


$time7 = microtime(true);


for($i=1; $i<=$times; $i++){
 $O = unserialize($X);
}


$time8 = microtime(true);


for($i=1; $i<=$times; $i++){
 $P = unserialize($Y);
}


$time9 = microtime(true);


for($i=1; $i<=$times; $i++){
 $Q = unserialize($Z);
}
$time10 = microtime(true);


$var_export_time['a'] = $time2 - $time1;
$var_export_time['b'] = $time3 - $time2;
$var_export_time['c'] = $time4 - $time3;


$serialize_time['a'] = $time5 - $time4;
$serialize_time['b'] = $time6 - $time5;
$serialize_time['c'] = $time7 - $time6;


$unserialize_time['a'] = $time8 - $time7;
$unserialize_time['b'] = $time9 - $time8;
$unserialize_time['c'] = $time10 - $time9;
print_r($var_export_time);
print_r($serialize_time);
print_r($unserialize_time);
?>
output:
Array(    [a] => 3.3401498794556    [b] => 5.1394801139832    [c] => 8.8483898639679)Array(    [a] => 1.6063709259033    [b] => 1.7033960819244    [c] => 3.4534389972687)Array(    [a] => 1.6037359237671    [b] => 1.817803144455    [c] => 3.7992968559265)

由上面数据说明:
var_export函数性能比serialize函数性能差一倍,而 unserialize时间也需要和serialize差不多的时间,serialize加上unserialize时间,和用var_export时间 差不多。

[!--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#中using的三种用法

    using 指令有两个用途: 允许在命名空间中使用类型,以便您不必限定在该命名空间中使用的类型。 为命名空间创建别名。 using 关键字还用来创建 using 语句 定义一个范围,将在此...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
  • 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
  • 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
  • PHP函数strip_tags的一个bug浅析

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

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

    这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法

    最近遇到一个问题,就是在使用php的mail函数发送utf-8编码的中文邮件时标题出现乱码现象,而邮件正文却是正确的。最初以为是页面编码的问题,发现页面编码utf-8没有问题啊,找了半天原因,最后找到了问题所在。 1.使用 PEAR 的...2015-10-21
  • C#中加载dll并调用其函数的实现方法

    下面小编就为大家带来一篇C#中加载dll并调用其函数的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#虚函数用法实例分析

    这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下...2020-06-25