php计算多长时间前发的内容2个函数

 更新时间:2016年11月25日 15:38  点击:2022
下面整理了两个用来计算用户发内容的时间,这里以分钟超,然后就是天数了,两个例子中,例子1只以计算昨天然后就是直接显示日期了,而后一个例子可以计算多少天前,并且文章最后对时区进行了介绍,告诉你在设置时间前一定要把php.ini时区设置好才行。

例子,

多长时间前的时间函数,论坛,博客常用

 代码如下 复制代码

function timeFromNow($dateline) {
    if(empty($dateline)) return false;
    $seconds = time() - $dateline;
    if ($seconds < 60){
   return "1分钟前";
    }elseif($seconds < 3600){
   return floor($seconds/60)."分钟前";
    }elseif($seconds  < 24*3600){
   return floor($seconds/3600)."小时前";
    }elseif($seconds < 48*3600){
   return date("昨天 H:i", $dateline)."";
    }else{
   return date('Y-m-d', $dateline);
    }
}

echo timeFromNow(strtotime("2012-07-07 14:15:13")); //昨天 14:15
echo timeFromNow(strtotime("2012-07-08 14:15:13")); //1小前

注:这里没有考虑到时区。

后来在网上看到一段代码

 

 代码如下 复制代码
function time_tran($the_time){
   $now_time = date("Y-m-d H:i:s",time()+8*60*60);
   $now_time = strtotime($now_time);
   $show_time = strtotime($the_time);
   $dur = $now_time - $show_time;
   if($dur < 0){
    return $the_time;
   }else{
    if($dur < 60){
return $dur.'秒前';
    }else{
if($dur < 3600){
 return floor($dur/60).'分钟前';
}else{
 if($dur < 86400){
  return floor($dur/3600).'小时前';
 }else{
  if($dur < 259200){//3天内
   return floor($dur/86400).'天前';
  }else{
   return $the_time;
  }
 }
}

最后补充时区

在 php.ini 中,默认是 date.timezone = UTC。修改为中国时区,修改为 date.timezone = PRC。如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8。
另外,也可以在 PHP 页面头中设置。
date_default_timezone_set('PRC');
测试:
echo date('Y-m-d H:i:s');

phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便,这个算是php新手一个非常好的帮手了,下文来给各位介绍利用phpStudy 创建多个站点,绑定域名教程。
默认情况下,phpStudy 的站点根目录是在它自己的WWW目录,比如 F:\phpStudy\WWW,访问的地址可以是http://127.0.0.1/   或 http://localhost/ 
下面我们要实现的是创建多个站点,绑定各自的域名,这样就方便我们进行多个项目的开发,互不影响。
 代码如下 复制代码
注:本文解说的是 phpStudy 完整版的,其他版本可能行不通或不一样。
1.打开 phpStudy ,在“其他选项”那里点击“站点域名设置”
0105-cmhello_com
2.看到如下界面,填写网站域名(随意写,建议不要写你经常访问的线上域名),然后选择网站目录(可以随意目录,但是不要使用中文),然后点击【新增】,然后点击【保存设置并生成配置文件】,重启环境就可以生效了
0106-cmhello_com
3.上面我们填写的域名,我们希望是直接访问我们本地的网站,要实现这个目的,我们需要修改一下自己电脑里的 hosts 文件,将域名指定到 127.0.0.1 ,如下图:
0107-cmhello_com
到这里就万事OK啦!
注:windows 8 的 hosts 文件在 C:\Windows\System32\drivers\etc 目录下,复制 hosts 文件到桌面,修改以后,复制回去就可以了。其他操作系统的 hosts 文件目录以及修改方法,请自行百度
在做一个删除文件自动生成404错误bad_url时发现生成的txt文件不换行了,提交给百度之后提示格式错误,下文就我此问题的解决办法一步步给各位分享吧。

1.我错误的做法分析

//下面增加错误页面提交给百度
   

 代码如下 复制代码
$hand = fopen("$path/bad_url.txt","a");
fwrite($hand,"\r".'http://www.111cn.net'.$rs['你的地址']);
fclose($hand);

结果发现输出的是

 http://www.111cn.net/database/mysql/57520.htm http://www.111cn.net/wy/js-ajax/57519.htm
这种连续了并不是我想要的

http://www.111cn.net/database/mysql/57520.htm
http://www.111cn.net/wy/js-ajax/57519.htm

这个我之前没想就直接使用了像ascii码的chr(13)或chr(32) 这两个我处理过htm表单的回车与换行了,是可以了,测试之后还是不行,于时只有上百度了。

 代码如下 复制代码
<?php
$stream = fopen("robots.txt", "w+");
fwrite($stream, "你换行了吗?\r\n我已经换行了!");
?>

注意:代码里面不要用单引号,我就是错在这步上如果用单引号输出的将是User-agent: *\r\nDisallow: / 因为PHP里面的单引号是不对内容里面的东西进行替换的所以用双引号,因为双引号PHP是检查里面的东西的

好几现再删除之后就可以了,是我们想要的结果

总结其实这个\r\n小编以前试成了\n\r好像也不行了,只是基础知识或很久不用忘记了哈

本站原创:转载注明来源http://www.111cn.net

下文来看看php session 同ip不同端口的多个网站session冲突的解决办法,希望文章能帮助到大家。

发现原因:
在局域网内使用IP加端口的访问方式搭了两个相同程序的站,结果发现用户在一个站下登录后,在另一个站也同时登录了,在一个退出后,另一个站也同时退出了。看了下程序发现两个站都是使用纯session方式记录登录状态,Cookie中只保存有PHPSESSID这个数据,而且由于使用的IP加端口形式,发现他们两个站的Cookie作用域是相同的,都是属于该服务器IP,这也就是导致这个问题的原因了。
解决方法:
/*————————————————-以下是废话————————————————-*/
1.把程序改为使用cookie记录使用的,两个站使用不同的cookie前后缀? 还是算了,懒的改。
2.由于服务器上有DNS服务,给这两个站绑定两个不同的域名,然后给局域网内的所有用户修改DNS地址?我去,那么多台电脑,只能我一个个去改,也不符合我们这种技术?诺姆绺癜 ! 而且还是懒。。。算了。
3.给服务器增加一个IP,给两个站绑定到不同的IP上去,局域网那么多的IP,闲着也是闲。方法可以行,试着弄了下又发现问题了:直接在本地连接中给这个网卡加一个IP,发现在不同的网关中,会提示MAC地址冲突。由于不太懂网络搭建,想添加一个虚拟网卡, 给虚拟网卡分配一个IP不就行了?两个网卡两个MAC应该没问题了吧,试了下发现虚拟的东西只能在本台计算机上使用。其它计算机是ping不通无法使用的。。 虽然后来又发现该服务器有两个物理网卡,只是第二个网卡没线插了也没权限去机房搞网线插。。还是算了。
4.最后还是通过程序上实现了。。。
/*————————————————-以上是废话————————————————-*/
在程序的common文件或是其它公用文件中加入一句php代码,如下:
ini_set(‘session.name’, ‘PHPSESSID_RS’);
当然 第二个参数就是session在保存到cookie时使用的名字,你可以自己设置自己喜欢的。。。
就是因为所有程序使用的session名都是在php.ini中设置的默认名称PHPSESSID, 所以 如果同域(同IP不同端口)下的网站之间使用session时会出现共用冲突情况。现在两套程序使用不同的session.name来保存sessionid,所以就不会产生session的冲突问题了。
问题解决!
PS:马蛋, 我的键盘又有两个键坏了。。问一句,为什么键盘会出现有的键按了没反应,即使在安全模式(顿号)PE系统中,而且该现象会发展,发展到这个键所在的一列都会挨个没反应,然后发展下一列。。最后发展成抛弃键盘直接使用虚拟桌面键盘的地步。。。

补充一篇:java解决办法

 一个服务器上搭建了多个tomcat或者weblogic,端口不一样,同时启动访问时session丢失。如:A,B两个服务,在浏览器中登录访问A后,当前打开的浏览器上在开一个选项卡访问B服务后,回过来点击访问A时session丢失,需要重新登录A才可以访问。经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。
        解决方法:
方法1:将不同的多个应用服务在不同的虚拟主机中,或者映射不同的IP进行部署。
方法2:对应tomcat服务处理方式:修改coocie的名称保证cookie不重复,即jsessionid的不重称,保证ip相同下sessioncookiename域名不同。
           1、tomcat5修改方法
在启动项中增加org.apache.catalina.SESSION_COOKIE_NAME参数
linux
JAVA_OPTS=’-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname‘
win
set JAVA_OPTS=”-Dorg.apache.catalina.SESSION_COOKIE_NAME=yousessionname“
           2、tomcat6和tomcat7修改方法相同
       tomcat增加参数对所有Context生效,影响甚大,所以到以后的版本可以就仅针对Context设置了
        在Context容器标签上增加sessionCookieName参数
<Context path=”/” docBase=”webapp” reloadable=”false”sessionCookieName=”yoursessionname”></Context>
          3、weblogic修改方法
          设置各个应用使用不同的cookie-name。
         weblogic的设置(设置不同的cookie-name):

         请在WEB-INFWeblogic.xml添加如下代码

                  <session-descriptor>      

                             <cookie-name>JSESSIONID1</cookie-name>  

                  </session-descriptor> 

在html表单中textarea中我们按回车与换行都是一些asc 或特殊的字符的我们是看不到了,如果不进行转换输出文字是没的排版的,下面本文章就此问题给各位总结一些例子吧。

php获取textarea的值是十分简单的 textarea回车换行为 \r\n 下面看例子

HTML代码:

 代码如下 复制代码

<Textarea name=”test” rows=”3″ cols=”20″ id=”test”></textarea>

PHP代码:

 代码如下 复制代码

$str=$_GET['test'];
echo $str.’<br />’;
$arr=explode(“\n”,$str);
print_r($arr);
echo count($arr).’<br />’;//回车数
$str1=nl2br($str);//回车换成换行
echo $str1;

所有代码:

 代码如下 复制代码

<html>
<head>
<title></title>
</head>
<body>
<form action=”">
<textarea name=”test”></textarea>
<input type=”submit”  />
</form>
<?php
$str=$_GET['test'];
echo $str.’<br />’;
$arr=explode(“\n”,$str);
print_r($arr);
echo count($arr).’<br />’;//回车数
$str1=nl2br($str);//回车换成换行默认函数
echo $str1;
?>

</body>
</html>

看一段dz论坛中例子

不多说了,上代码:

 代码如下 复制代码
$names = preg_split('/\r\n/',$_POST['textarea']);
foreach($names as $name){
    // todo something eg: echo $name;
}

取值很简单,那么赋值呢,在textarea中输出换行符可没那么简单

 

 代码如下 复制代码
$vals = get_from_mydb();
$tmp = '';
foreach($vals as $val){
    $tmp .= $val.'&#13;&#10;';
}
“&#13;”和”&#10;”是什么意思

相信大家都看到了,其实textarea中的回车变成字符就成”\n”了,所以php处理textarea中的回车其实就是处理字符中的”\n”.

[!--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
  • 在java中获取List集合中最大的日期时间操作

    这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
  • Python中的imread()函数用法说明

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

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

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • 教你怎么用Java获取国家法定节假日

    这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
  • 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
  • 金额阿拉伯数字转换为中文的自定义函数

    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
  • SQL Server中row_number函数的常见用法示例详解

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

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