PHP获取当前日期指定的日期列表

 更新时间:2016年11月25日 17:05  点击:1538
最近由于项目要求做一个统计功能,统计当前日期之前的前30天的记录。功能挺简单,下面将本次实现的方法和大家分享一下,方便有需要的朋友们。

其实主要就是用到了php的strtotime这个函数,strtotime('n day'),示例如下:

 代码如下 复制代码

$days=array();

for($i=0;$i<=7;$i++){ //这里数字根据需要变动
 

$days[]=date("Y-m-d",strtotime('-'.$i.'day'));

}

echo '<pre>';print_r($days);

结果将显示如下:

 代码如下 复制代码

Array
(
    [0] => 2014-03-21
    [1] => 2014-03-20
    [2] => 2014-03-19
    [3] => 2014-03-18
    [4] => 2014-03-17
    [5] => 2014-03-16
    [6] => 2014-03-15
    [7] => 2014-03-14
)

在php中我们利用file_exists来判断本地的文件是否存在,那么如何用PHP判断远程文件是否存在呢,下在我们一起来看一个例子,希望此例子是你需要用到的哦。
 代码如下 复制代码

<?php
/*

*用PHP判断远程图片(文件)是否存在

*http://www.111cn.net

*/

function check_remote_file_exists($url) {
    $curl = curl_init($url);
    
// 不取回数据

    curl_setopt($curl, CURLOPT_NOBODY, true);
    
// 抓取跳转后的内容

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
    
// 发送请求

    $result = curl_exec($curl);
    $found = false;
    
// 如果请求没有发送失败

    if ($result !== false) {
        
// 再检查http响应码是否为200

        $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        var_dump($statusCode);
        if ($statusCode == 200) {
            
// $retcode >= 400 -> not found, $retcode = 200, found.

            $found = true;
        }
    }
    curl_close($curl);
 
    return $found;
}
 
$exists = check_remote_file_exists('http://www.111cn.net /allimg/090403/140941513J2-2.jpg');
if ($exists) {
    echo '存在';
} else {
    echo '不存在';
}
 
$exists = check_remote_file_exists('http://www.111cn.net /allimg/090403/140941513J2-4.jpg');
if ($exists) {
    echo '存在';
} else {
    echo '不存在';
}
exit;
?>

还有一种简单的方法,但效率是低下的。

 代码如下 复制代码
strstr(current(get_headers($url)), "200")
大家知道英文字符占一个字节,而中文字符gbk占两个字符,utf8占三个字符,很多人印象中php计算字符串长度就是strlen()函数,其实不然,它计算的是字节的长度而非字符的长度,那么如何获取一个字符串中字符的长度呢?还有有mb_strlen()

例子

 代码如下 复制代码

echo $str = 'PHP点点通';
 
echo strlen($str); //3*1+3*3=12
echo mb_strlen($str, 'gb2312'); //3*1+3*2=9
echo mb_strlen($str, 'utf-8'); //6


可恶的是,mb系列的函数并不是PHP核心函数,默认没有开启的,还有一个超简单的方法,通过正则将字符串分解为字符个体,计算字符的个数即为字符串的长度:www.111cn.net

 代码如下 复制代码

<?php
function _strlen($str)
{
        preg_match_all("/./us", $str, $matches);
        return count(current($matches));
}
 
echo _strlen("PHP点点通");  //6

 

你可能所有不知道获取短网址跳转后的真实地址我们可以使用get_headers()函数来实现,下面我一起来看我总结的一些例子。

获取到一个短连接,需要将短连接转换成真实的网址,通过查资料,发现 PHP 提供了一个函数 get_headers() ,可以完成这个任务,先把 头部信息获取到,然后再分析跳转地址即可

利用get_headers() 函数获取http头
php 自带的get_headers()取得服务器响应一个 HTTP 请求所发送的所有标头。 获取301状态肯定没问题。

例子

 代码如下 复制代码

$url = 'http://t.cn/h5mwx';
$headers = get_headers($url, TRUE);

print_r($headers);

//输出跳转到的网址
echo $headers['Location'];

附:

Array
(
    [0] => HTTP/1.1 302 Moved Temporarily
    [Location] => http://www.111Cn.net
    [Content-Type] => Array
        (
            [0] => text/html;charset=UTF-8
            [1] => text/html;charset=utf-8
        )

    [Server] => Array
        (
            [0] => weibo
            [1] => BWS/1.0
        )

    [Content-Length] => Array
        (
            [0] => 203
            [1] => 16424
        )

    [Date] => Array
        (
            [0] => Thu, 12 Dec 2013 10:42:25 GMT
            [1] => Thu, 12 Dec 2013 10:42:25 GMT
        )

    [X-Varnish] => 2893360335
    [Age] => 0
    [Via] => 1.1 varnish
    [Connection] => Array
        (
            [0] => close
            [1] => Close
        )
)

好了我们看一个获取短网址跳转之前的网址

 代码如下 复制代码

$header = get_headers($url, 1);
if (strpos($header[0], '301') || strpos($header[0], '302')) {
if (is_array($header['Location'])) {
return $header['Location'][count($header['Location'])-1];
} else {
return $header['Location'];
}
} else {
return $url;
}

Warning: Invalid argument supplied for foreach() 的中文意思是说foreach需要是一个数组而给它的是一个无效的参数。

在没有购物商品直接进入购物车时竟然出现警告提示

php下foreach()错误提示Warning: Invalid argument supplied for foreach()

错误提示:

Warning: Invalid argument supplied for foreach() in E:wampwwwmyshopcart.php on line 95
 

解决方案:就是在循环前面加上判断

直接使用is_array判断给的值是不是为数组

 代码如下 复制代码

if(is_array($items) && !empty($items)){

foreach( )

或者 强制转换数据类型

 代码如下 复制代码

foreach((array)$v as $k1 => $v1) {
     $edu[$k1][$k] = my_h($v1);// v1是最终要入库的数据,进行转义处理
}

[!--infotagslink--]

相关文章

  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • js实现列表按字母排序

    这篇文章主要为大家详细介绍了js实现列表按字母排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-11
  • php计算两个日期相差天数的方法

    本文实例讲述了php计算两个日期相差天数的方法。...2015-03-15
  • PostgreSQL 字符串处理与日期处理操作

    这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • vue开发之moment的介绍与使用

    moment是一款多语言支持的日期处理类库, 在vue中如何使用呢?这篇文章主要给大家介绍了关于vue之moment使用的相关资料,需要的朋友可以参考下...2021-05-13
  • 非常全面的php日期时间运算汇总

    实例讲解之前,先来介绍几个核心函数: mktime 函数 mktime() 函数返回一个日期的 Unix 时间戳。 参数总是表示 GMT 日期,因此 is_dst 对结果没有影响。 参数可以从右到左依次空着,空着的参数会被设为相应的当前 GMT 值。...2015-11-08
  • javaScript年份下拉列表框内容为当前年份及前后50年

    javascript下拉列表框,内容为当前年份及前后50年,默认选择为当前年份 复制代码 代码如下: <script language="javascript" type="text/javascript"> window.onload=function(){ //设置年份的选择 var myDate= new Date(...2014-05-31
  • C#实现将字符串转换成日期格式的方法

    这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25
  • Python 列表(List)的底层实现原理分析

    这篇文章主要介绍了Python 列表(List)的底层实现原理分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • php根据日期或时间戳获取星座信息和生肖等信息

    分享一个利用php根据日期或时间戳获取相应的干支纪年,生肖和星座信息的函数方法,具体函数代码以及使用方法如下: /** 判断干支、生肖和星座 */ function birthext($birth){ if(strstr($birth,'-')===false&&strlen($bi...2015-10-21
  • easyUI下拉列表点击事件使用方法

    这篇文章主要为大家详细介绍了easyUI下拉列表点击事件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-22
  • JavaScript实现网页下拉列表的省市联动

    这篇文章主要为大家详细介绍了JavaScript实现网页下拉列表的省市联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-07
  • java8时间 yyyyMMddHHmmss格式转为日期的代码

    这篇文章主要介绍了java8时间 yyyyMMddHHmmss格式转为日期的代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-17
  • C#判断日期是否到期的方法

    这篇文章主要介绍了C#判断日期是否到期的方法,是C#程序设计中非常实用的技巧,需要的朋友可以参考下...2020-06-25
  • C#比较日期的方法总结

    在本篇内容中小编给大家整理了关于C#比较日期的方法和相关知识点,有需要的朋友们学习下。...2020-06-25
  • sql通过日期判断年龄函数的示例代码

    这篇文章主要介绍了sql通过日期判断年龄函数,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-07-16
  • 微信小程序wxs日期时间处理的实现示例

    最近在做一个列表的时候,涉及到时间格式化操作。本文主要介绍了微信小程序wxs日期时间处理的实现示例,分享给大家,感兴趣的可以了解一下...2021-07-22
  • C# 列表List的常用属性和方法介绍

    这篇文章主要介绍了C# 列表List的常用属性和方法介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • jQuery DateTimePicker 日期和时间插件示例

    jQuery UI很强大,其中的日期选择插件Datepicker是一个配置灵活的插件,这篇文章主要介绍了jQuery DateTimePicker 日期和时间插件示例,有兴趣的可以了解一下。...2017-01-26
  • 微信小程序虚拟列表的实现示例

    大部分小程序都会有这样的需求,页面有长列表,需要下拉到底时请求后台数据,一直渲染数据,当数据列表长时,会发现明显的卡顿,页面白屏闪顿现象,那么如何实现小程序虚拟列表,感兴趣的可以了解一下...2021-07-16