php测试代码执行消耗的内存和时间

 更新时间:2016年11月25日 17:28  点击:1562
在php中要测试代码执行消耗的内存和时间我们可以直接使用俩函数,microtime 和 memory_get_usage就可以了,下面我来给大家介绍介绍。

我们先来看看microtime 和 memory_get_usage函数用法吧

义和用法

microtime() 函数返回当前 Unix 时间戳和微秒数。

语法

microtime(get_as_float)参数 描述
get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。

例子

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

输出:

0.25139300 1138197510

一,函数原型

int memory_get_usage ([ bool $real_usage=false ] )

二,版本兼容

PHP 4 >= 4.3.2,PHP 5

三,基础用法与实例

1,获取当前的内存消耗量

 代码如下 复制代码

<?php
echo memory_get_usage();
$var=str_repeat(www.111cn.net,10000);
echo memory_get_usage();
unset($var);
echo memory_get_usage();
?>

结果输出:62328 122504 62416

说明:memory_get_usage() 函数输出的数值为 bytes 单位

2,格式化 memory_get_usage() 结果以 KB 为单位输出

 

 代码如下 复制代码
<?php
function convert($size){
 $unit=array('b','kb','mb','gb','tb','pb');
 return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
}
echo convert(memory_get_usage(true));
?>

265KB

好了两个函数基本介绍完了,下面我来看一个测试实例

 

 代码如下 复制代码

<?php

$t1 = microtime(true);
$m1 = memory_get_usage(true);
echo fixByte($m1). '<br />';

/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/

/*↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑*/

$t2 = microtime(true);
$m2 = memory_get_usage(true);
echo '<br />' . fixByte($m2). '<br />';

echo '<hr >';
echo 'time ' . round(($t2 - $t1), 4) .'<br />';
echo 'mem ' . fixByte($m2 - $m1) .  '<br />';

/**
 * 格式化字节为合适的数值
 * @param int $byte 字节数
 * @param string $string 格式化的可读性强的字节数
 */
function fixByte($byte, $string = true, $dot_num = 9) {
 $ret = array(
   'data'=>$byte,
   'danwei'=>'Byte',
 );

 if ($byte < 1024) {

 } else if ($byte < 1024*1024) {
  $ret['data'] = round($byte / 1024, $dot_num);
  $ret['danwei']='K';
 } else if ($byte < 1024*1024*1024) {
  $ret['data'] = round($byte / (1024*1024), $dot_num);
  $ret['danwei']='M';
 } else if ($byte < 1024*1024*1024*1024) {
  $ret['data'] = round($byte / (1024*1024*1024), $dot_num);
  $ret['danwei']='GB';
 } else if ($byte < 1024*1024*1024*1024*1024) {
  $ret['data'] = round($byte / (1024*1024*1024*1024), $dot_num);
  $ret['danwei']='TB';
 }

 if ($string) {
  $ret = $ret['data'] . ' ' . $ret['danwei'];
 }

 return $ret;
}

不管你是使用php打开浏览器缓存还是使用apache,iis服务器环境来配置我们都是会针对浏览器的Cache-Control来操作,下面我来给大家介绍PHP设置图片浏览器缓存

Cache-Control

Cache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令通常覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。

cache-control 定义是:Cache-Control = “Cache-Control” “:” cache-directive。表 1 展示了适用的值。

表 1. 常用 cache-directive 值
Cache-directive 说明
public 所有内容都将被缓存
private 内容只缓存到私有缓存中
no-cache 所有内容都不会被缓存
no-store 所有内容都不会被缓存到缓存或 Internet 临时文件中
must-revalidation/proxy-revalidation 如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证
max-age=xxx (xxx is numeric) 缓存的内容将在 xxx 秒后失效, 这个选项只在HTTP 1.1可用, 并如果和Last-Modified一起使用时, 优先级较高

在客户端通过浏览器发出第一次请求某一个URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request Header),服务器端响应同时记录相关属性标记(Http Reponse Header),服务器端的返回状态会是200,格式类似如下:

 代码如下 复制代码

HTTP/1.1 200 OK
Date: Tue, 03 Mar 2009 04:58:40 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Tue, 24 Feb 2009 08:01:04 GMT
Cache-Control: max-age=2592000
Expires: Thu, 02 Apr 2009 05:14:08 GMT
Etag: “5d8c72a5edda8d6a:3239″


客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送报头(Http Request Header),服务器端响应并记录相关记录属性标记文件没有发生改动,服务器端返回304,直接从缓存中读取:

 代码如下 复制代码

HTTP/1.x 304 Not Modified
Date: Tue, 03 Mar 2009 05:03:56 GMT
Content-Type: image/jpeg
Content-Length: 83185
Last-Modified: Tue, 24 Feb 2009 08:01:04 GMT
Cache-Control: max-age=2592000
Expires: Thu, 02 Apr 2009 05:14:08 GMT
Etag: “5d8c72a5edda8d6a:3239″


一、Last-Modified、Expires和Etag相关工作原理
1、Last-Modified
在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是你请求的资源,同时有一个Last-Modified的属性标记(Http Reponse Header)此文件在服务期端最后被修改的时间,格式类似这样:

1 Last-Modified: Tue, 24 Feb 2009 08:01:04 GMT
客户端第二次请求此URL时,根据 HTTP 协议的规定,浏览器会向服务器传送 If-Modified-Since 报头(Http Request Header),询问该时间之后文件是否有被修改过:

1 If-Modified-Since: Tue, 24 Feb 2009 08:01:04 GMT
如 果服务器端的资源没有变化,则自动返回 HTTP 304 (Not Changed.)状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而 保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

注:如果If-Modified-Since的时间比服务器当前时间(当前的请求时间request_time)还晚,会认为是个非法请求

2、Etag工作原理

HTTP 协议规格说明定义ETag为“被请求变量的实体标记” (参见14.19)。

简单点即服务器响应时给请求URL标记,并在HTTP响应头中将其传送到客户端,类似服务器端返回的格式:

1 Etag: “5d8c72a5edda8d6a:3239″
客户端的查询更新格式是这样的:

1 If-None-Match: “5d8c72a5edda8d6a:3239″
如果ETag没改变,则返回状态304。
即:在客户端发出请求后,Http Reponse Header中包含 Etag: “5d8c72a5edda8d6a:3239″
标识,等于告诉Client端,你拿到的这个的资源有表示ID:5d8c72a5edda8d6a:3239。

当下次需要发Request索要同一个URI的时候,浏览器同时发出一个If-None-Match报头( Http Request Header)此时包头中信息包含上次访问得到的Etag: “5d8c72a5edda8d6a:3239″标识。

1 If-None-Match: “5d8c72a5edda8d6a:3239″
这样,Client端等于Cache了两份,服务器端就会比对2者的etag。如果If-None-Match为False,不返回200,返回304 (Not Modified) Response。

3、Expires
给出的日期/时间后,被响应认为是过时。如Expires: Thu, 02 Apr 2009 05:14:08 GMT
需和Last-Modified结合使用。用于控制请求文件的有效时间,当请求数据在有效期内时客户端浏览器从缓存请求数据而不是服务器端. 当缓存中数据失效或过期,才决定从服务器更新数据。

4、Last-Modified和Expires
Last-Modified标识能够节省一点带宽,但是还是逃不掉发一个HTTP请求出去,而且要和Expires一起用。而Expires标识却使得浏 览器干脆连HTTP请求都不用发,比如当用户F5或者点击Refresh按钮的时候就算对于有Expires的URI,一样也会发一个HTTP请求出去, 所以,Last-Modified还是要用的,而 且要和Expires一起用。

5、Etag和Expires
如果服务器端同时设置了Etag和Expires时,Etag原理同样,即与Last-Modified/Etag对应的Http Request Header:If-Modified-Since和If-None-Match。我们可以看到这两个Header的值和Web Server发出的Last-Modified,Etag值完全一样;在完全匹配If-Modified-Since和If-None-Match即检查 完修改时间和Etag之后,服务器才能返回304.

6、Last-Modified和Etag
Last-Modified 和ETags请求的http报头一起使用,服务器首先产生 Last-Modified/Etag标记,服务器可在稍后使用它来判断页面是否已经被修改,来决定文件是否继续缓存

过程如下:
1. 客户端请求一个页面(A)。
2. 服务器返回页面A,并在给A加上一个Last-Modified/ETag。
3. 客户端展现该页面,并将页面连同Last-Modified/ETag一起缓存。
4. 客户再次请求页面A,并将上次请求时服务器返回的Last-Modified/ETag一起传递给服务器。
5. 服务器检查该Last-Modified或ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304和一个空的响应体。

注:
1、Last-Modified和Etag头都是由Web Server发出的Http Reponse Header,Web Server应该同时支持这两种头。
2、Web Server发送完Last-Modified/Etag头给客户端后,客户端会缓存这些头;
3、客户端再次发起相同页面的请求时,将分别发送与Last-Modified/Etag对应的Http Request Header:If-Modified-Since和If-None-Match。我们可以看到这两个Header的值和Web Server发出的Last-Modified,Etag值完全一样;
4、通过上述值到服务器端检查,判断文件是否继续缓存;

二、对于非实时交互动态页面中Epires和Etag处理
对数据更新并不频繁、如tag分类归档等等,可以考虑对其cache。简单点就是在非实时交互的动态程序中输出expires和etag标识,让其缓存。 但需要注意关闭session,防止http response时http header包含session id标识;

3.1、Expires
如expires.php

 代码如下 复制代码

header(’Cache-Control: max-age=86400,must-revalidate’);
header(’Last-Modified: ‘ .gmdate(’D, d M Y H:i:s’) . ‘ GMT’ );
header(”Expires: ” .gmdate (’D, d M Y H:i:s’, time() + ‘86400′ ). ‘ GMT’);


3.2、Etag
根据Http返回状态来处理。当返回304直接从缓存中读取
如etag.php

 代码如下 复制代码

cache();
echo date(”Y-m-d H:i:s”);
function cache()
{
       $etag = “http://longrujun.name”;
       if (isset($_SERVER['HTTP_IF_NONE_MATCH'])  &&
$_SERVER['HTTP_IF_NONE_MATCH'] == $etag)
       {
              header(’Etag:’.$etag,true,304);
              exit;
       }
       else header(’Etag:’.$etag);
}

图片缓存实例

 代码如下 复制代码


$imagePath = "path/to/some/image";
 
$eTag = $imagePath;
$eTag .= fileMTime($imagePath);
$eTag = md5($eTag);
 
if((isset($_SERVER['HTTP_IF_NONE_MATCH'])) &&
(stripslashes($_SERVER['HTTP_IF_NONE_MATCH']) == $eTag)) {
    header("HTTP/1.1 304 Not Modified", TRUE, 304);
    exit();
}
 
header("ETag: ".$eTag);
header("Content-Type: image/png");
readFile($imagePath);
exit();

上面的方法超级简单,下面看个完整实例

 代码如下 复制代码

$fullpath = '/www/images/' . basename($_GET['img']); //假定文件都在/www/images/下
if (!is_file($fullpath)) {
    header("HTTP/1.0 404 Not Found");
    exit();
}
 
$info = getImageSize($fullpath); //获取图片信息
if (!$info) {                    //如果不是图片
    header("HTTP/1.0 404 Not Found");
    exit();
}
 
// 以下凡是header函数都是在输出头部信息。较多。
header('Content-type: '. $info['mime']);          //类似于image/png
header('Content-Length: '. filesize($fullpath));  //文件长度
 
header('Pragma: ');             //没用,但要设置,防止服务器生成no-cache的可怕字眼
 
//手动设置过期时间,单位都是秒
$validtime = 48* 60 * 60;    // 48小时
 
//缓存相对请求的时间,
header('Cache-Control: ' . 'max-age='. $validtime);
 
//也很重要的Expires头,功能类似于max-age
//time()+$validtime: 设置期限,到期后才会向服务器提交请求
//gmdate,生成Sun, 01 Mar 2009 04:05:49 +0000  的字符串,而且是GMT标准时区
//preg_replace,  生成Sun, 01 Mar 2009 04:05:49 GMT, 注意:可能与服务器设置有关,
//但我都用默认设置
header('Expires:'. preg_replace('/.{5}$/', 'GMT', gmdate('r', time()+ $validtime)));
 
//文件最后修改时间
$lasttime = filemtime($fullpath);
 
//最后修改时间,设置了,点击刷新时,浏览器再次请求图片才会发出'IF_MODIFIED_SINCE'头,
//从而被php程序读取
header('Last-Modified: ' . preg_replace('/.{5}$/', 'GMT', gmdate('r', $lasttime) ));
 
//重要,如果请求中的时间和 文件生成时间戳相等,则文件未修改,客户端可用缓存
if (strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lasttime) {
    header("HTTP/1.1 304 Not Modified"); //服务器发出文件不曾修改的指令
    exit();
}
 
//如果文件被修改了,只好重新发出数据
echo file_get_contents($fullpath);

生成短网址我们可以直接使用一个函数来生成一个唯一的长度为5-6字符的地址,但是我们还需要做一点就是直接利用为静态做跳转,下面我来给大家介绍。

生成短网址程序

 代码如下 复制代码

<?php
function code62($x){
 $show='';
 while($x>0){
  $s=$x % 62;
  if ($s>35){
   $s=chr($s+61);
  }elseif($s>9&&$s<=35){
   $s=chr($s+55);
  }
  $show.=$s;
  $x=floor($x/62);
 }
 return $show;
}
function shorturl($url){
 $url=crc32($url);
 $result=sprintf("%u",$url);
 return code62($result);
}

这样生成职来的就是如 htt:/z.cn/abcfc 这种了,但是我们要实现能访问就需要在你apache或iis配置一个伪静态了,如下

 代码如下 复制代码

如何将

http://z.cn/link.php?url=http://www.111cn.net

缩成

http://z.cn/zHEYrvV

这个地方需要用到url重写,按照本例则可以这么重写:

 代码如下 复制代码

RewriteEngine On 

RewriteBase / 

RewriteRule ^/(.*)$ link.php?url=$1[L]

在php数组中分为数组值与数组key,下面小编来给大家总结一下在php中数组值常用的操作方法包括有:数组中加入数值、判断 数组中的数值、删除特定数组值等有需要的同学可参考。

php删除特定数组值

首先

 代码如下 复制代码
var_dump($context['linktree']);

得到

 代码如下 复制代码
array(3) {
[0]=>
array(2) {
["url"]=>
string(52) “http://127.0.0.1/testforum.cityofsteam.com/index.php”
["name"]=>
string(28) “City of Steam Official Forum”
}
[1]=>
array(2) {
["url"]=>
string(55) “http://127.0.0.1/testforum.cityofsteam.com/index.php#c1″
["name"]=>
string(28) “City of Steam Official Forum”
}
[2]=>
array(2) {
["url"]=>
string(62) “http://127.0.0.1/testforum.cityofsteam.com/index.php?board=4.0″
["name"]=>
string(12) “Announcement”
}
}

我要去掉中间那个。

用:unset($context['linktree']['1']);

结果:

 代码如下 复制代码

array(2) {
[0]=>
array(2) {
["url"]=>
string(52) “http://127.0.0.1/testforum.cityofsteam.com/index.php”
["name"]=>
string(28) “City of Steam Official Forum”
}
[2]=>
array(2) {
["url"]=>
string(62) “http://127.0.0.1/testforum.cityofsteam.com/index.php?board=4.0″
["name"]=>
string(12) “Announcement”
}
}

就少了一个[1]

让这中间的1自动编号:

 代码如下 复制代码


Array ( [0] => apple [1] => banana [3] => dog )

但是这种方法的最大缺点是没有重建数组索引,就是说,数组的第三个元素没了。
经过查资料后,原来PHP提供了这个功能,只不过很间接。这个函数是array_splice()。
为了使用方便,我封装成了一个函数,方便大家使用:

 代码如下 复制代码

<?php

function array_remove(&$arr, $offset)

{
 
array_splice($arr, $offset, 1);

}

$arr = array('apple','banana','cat','dog');
 
array_remove($arr, 2);
 
print_r($arr);

?>

经过测试可以知道,2的位置这个元素被真正的删除了,并且重新建立了索引。

程序运行结果:

 代码如下 复制代码

Array ( [0] => apple [1] => banana [2] => dog )


php判断 数组中的数值


有专门的函数,不要用for循环,系统函数能实现快速搜索:

in_array
(PHP 4, PHP 5)

in_array — 检查数组中是否存在某个值

说明
bool in_array ( mixed $needle, array $haystack [, bool $strict] )

在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

注意: 如果 needle 是字符串,则比较是区分大小写的。

注意: 在 PHP 版本 4.2.0 之前,needle 不允许是一个数组。

例 292. in_array() 例子

 代码如下 复制代码
<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>

第二个条件失败,因为 in_array() 是区分大小写的,所以以上程序显示为:

Got Irix

例 293. in_array() 严格类型检查例子

 代码如下 复制代码

<?php
$a = array('1.10', 12.4, 1.13);

if (in_array('12.4', $a, true)) {
    echo "'12.4' found with strict checkn";
}
if (in_array(1.13, $a, true)) {
    echo "1.13 found with strict checkn";
}
?>
上例将输出:

1.13 found with strict check

例 294. in_array() 中用数组作为 needle

 代码如下 复制代码

<?php
$a = array(array('p', 'h'), array('p', 'r'), 'o');

if (in_array(array('p', 'h'), $a)) {
    echo "'ph' was foundn";
}
if (in_array(array('f', 'i'), $a)) {
    echo "'fi' was foundn";
}
if (in_array('o', $a)) {
    echo "'o' was foundn";
}
?>
上例将输出:

  'ph' was found
  'o' was found


向一个数组中加入数值

我们可以通过函数来实现,将一个或多个元素插入到数组中去,也可以直接添加进去。
(1)向数组中直接添加数据,新元素的下标是从原数组下标最大值之后开始的。
(2)array_unshift()函数在数组的开头添加一个或多个元素。
语法如下:
int array_unshift ( array &array, mixed var [,mixed ...]) ;
array_unshift()将传入的元素插入到array数组的开头。元素是作为整体被插入的,传入元素将保持同样的顺序。所有的数值键名将从0开始重新计数,文字键名保持不变。
(3)array_push()函数将一个或多个单元添加到数组的末尾。
语法:
int array_push ( array &array, mixed var [, mixed ...]) ;
array_push()将array当成一个栈,并将传入的变量添加到array的末尾。该函数返回数组新的单元总数。向数组中添加数据的示例如下。
示例:

 代码如下 复制代码
<?php
$shili = array (“1″,”2″,”3″,”4″) ;
$shili[]=5 ;                            //直接添加数据
print_r ( $shili ) ;
echo “<br>” ;
$shili2 = array (“m”,”n”) ;
array_unshift ($shili2,”o”,”p”) ;          //添加元素于数组的开头
print_r ( $shili2 ) ;
echo “<br>” ;
$shili3 = array (“Php”) ;
array_push ($shili3, “MySQL”,”Apache”) ; //添加元素于数组的末尾
print_r ($shili3) ;
?>
结果为:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => o [1] => p [2] => m [3] => n )
Array ( [0] => Php [1] => MySQL [2] => Apache )
在很多网站用户先访问一个要登录的页面,但当时没有登录后来登录了,等待用户登录成功之后肯定希望返回到上次访问的页面,下面我就来给大家介绍登录后跳转回原来要访问的页面实例

最简单的办法就是直接使用php $_SERVER['HTTP_REFERER']


如果我在A.php页面要登录


现在跳到B.php页面,我们只要在b.php中加如下代码

 代码如下 复制代码

$url = $_SERVER['HTTP_REFERER'];
header("location:$url");

但是上面的办法会有很多不足,如带参数等等,但在IE浏览器下的话,假如你是通过js的location来跳转的话,那这个值是获取不到的。

 下面我做一个全面点的。


首先创建一个方法判断是否登录,如果没登录则

 代码如下 复制代码

protected function checkLogin() {
       if (没有登录){          
       $thisurl = "http://".$_SERVER["HTTP_HOST"].$_SERVER['PHP_SELF'];//当前URL
       $thisurl = urlencode($thisurl);//这里要注意需要把获取到的url转码,不然后面不好传递URL
           redirect("http://".$_SERVER["HTTP_HOST"]."/cityosweb/default.php/Index/login?url=".$thisurl);           
       }
   }

然后在需要登录的才能反问的页面调用这个方法:

 代码如下 复制代码

$this->checkLogin();

这样如果你没有登录则跳转到登录页面。并带上了你之前页面的url:


然后获取URL提交登录:

 代码如下 复制代码

public function login() {
        $url = $_GET['url'];
        $this->assign('url',$url);
        $this->assign('title','Login');
        $this->display('user/reg_new.html');
    }

模板上获取到url后提交到php后台,登录后跳转到这个url ok搞定

[!--infotagslink--]

相关文章

  • 在java中获取List集合中最大的日期时间操作

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

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • 解决@SpringBootTest 单元测试遇到的坑

    这篇文章主要介绍了解决@SpringBootTest 单元测试遇到的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-14
  • 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
  • 浅谈redis key值内存消耗以及性能影响

    这篇文章主要介绍了浅谈redis key值内存消耗以及性能影响,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-07
  • 详解分析MySQL8.0的内存消耗

    这篇文章主要介绍了详解分析MySQL8.0的内存消耗,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下...2021-03-23
  • DWVA上传漏洞挖掘的测试例子

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。包含了SQL注入、XSS、盲注等常见的一些安全漏洞...2016-11-25
  • PHP测试成功的邮件发送案例

    mail()函数的作用:连接到邮件服务器,利用smtp协议,与该服务器交互并投邮件。注意:1、mail函数不支持esmtp协议,---即,只能直投,不能登陆2、由上条,我们只能直投至最终的收件服务器地址.而该地址,又是在PHP.ini中指定的,所...2015-10-30
  • 用VirtualBox构建MySQL测试环境

    宿主机使用网线的时候,客户机在Bridged Adapter模式下,使用Atheros AR8131 PCI-E Gigabit Ethernet Controller上网没问题。 宿主机使用无线的时候,客户机在Bridged Adapter模式下,使用可选项里唯一一个WIFI选项,Microsoft Virtual Wifi Miniport Adapter也无法上网,故弃之。...2013-09-19
  • 常用的日期时间正则表达式

    常用的日期时间正则表达式 下面收藏了大量的日期时间正则匹配函数,包括分钟,时间与秒都能达到。 正则表达式 (?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
  • C#中动态显示当前系统时间的实例方法

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

    这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • 解决使用OpenCV中的imread()内存报错问题

    这篇文章主要介绍了解决使用OpenCV中的imread()内存报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
  • 从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
  • JavaScript时间操作之年月日星期级联操作

    这篇文章主要介绍了JavaScript时间操作之级联日期选择操作,涉及到年、月、日、星期,感兴趣的小伙伴们可以参考一下...2016-01-18