php系统时区设置方法总结
时区划分
整个地球分为24个时区,每个时序都有自己的本地时间。同一时间,每个时区的本地时间相差1到23个小时,例如,英国伦敦本地时间与北京本地时间相差8个小时。在国际无线电通信领域,使用一个统一的时间,称为通用协调时间(UTC,Universal Time Coordinated),UTC与格林威治标准时间(GMT,Greenwich Mean Time)相同,都与英国伦敦的本地时间相同
时区设置
由于PHP5.0对data()函数进行了重写,因此,目前的日期时间函数比系统时间少8个小时。在PHP语言中默认设置的是标准的格林威治时间(即采用的是零时区),所以要获取本地当前的时间必须更改PHP语言中的时区设置。
更改PHP语言中的时区设置有两种方法:
(1)修改php.ini文件中的设置,找到[date]下的“;date.timezone=”选项,将其修改为“date.timezone=Asia/Hong_Kong”,然后重新启动Apache服务器。
修改PHP.ini这个文件
找到date.timezone这行,去掉前面的分号,改成:
代码如下 | 复制代码 |
date.timezone = Asia/Shanghai |
修改 .htaccess文件
修改.htaccess文件有两种办法,下面的两条语句只要有一条即可
代码如下 | 复制代码 |
php_value date.timezone Asia/Shanghai |
(2)在应用程序中,在使用时间日期函数之前添加如下函数:
在代码中设置时区
代码如下 | 复制代码 |
1 date_default_timezone_set('Asia/Shanghai');//'Asia/Shanghai' 亚洲/上海 2 date_default_timezone_set('Asia/Chongqing');//其中Asia/Chongqing'为“亚洲/重庆” 3 date_default_timezone_set('PRC');//其中PRC为“中华人民共和国” 4i ni_set('date.timezone','Etc/GMT-8'); 5 ini_set('date.timezone','PRC'); 6 ini_set('date.timezone','Asia/Shanghai'); 7 ini_set('date.timezone','Asia/Chongqing'); date_default_timezone_set('PRC'); //PRC为中华人民共和国时区 |
或者
代码如下 | 复制代码 |
<?php |
参数为PHP可识别的时区名称,如果时区名称PHP无法识别,则系统采用UTC时区。在PHP手册中提供了各个时区名称列表,其中,设置我国北京时间可以使用的时区包括:PRC(中华人民共和国)、Asia/Chongqing(重庆)、Asia/Shanghai(上海)或者Asia/Urumqi(乌鲁木齐),这几个时区名称等效的。
设置完成后,date()函数便可以正常使用,不会再出现时差问题。
输出系统的当前时间
上面是一种设置系统当前时间的方法,在这里将采用另外一种方式设置系统当前的时间,即直接在date()函数之前通过date_default_timezone_set()函数设置系统的时区,并输出系统当前的日期和时间。代码如下
代码如下 | 复制代码 |
<?php |
测试:
代码如下 | 复制代码 |
代码 unix时间戳:指的是当前(GMT标准)时间离unix纪元时间(1970-01-01 00:00:00)的秒数; |
strtotime(a):当前时间的GMT标准时间的unix时间戳,如果当前php系统的设置的时区不是GMT标准时区,则在应用strtotime(a)时,系统会自动把时间a折算成相应的GMT标准时间,然后计算这个时间的unix时间戳。跟php系统设置的时区有关
在这里我们介绍使用php来实现酷狗krc歌词解析并转换为lrc歌词了,文章是转一站长的希望对各位朋友会有所帮助。最近在进行一次对酷狗音乐歌词采集时发现酷狗音乐的歌词直接浏览都是“乱码”,自己平时所见的歌词都是lrc格式的文本,这种酷狗专用的krc格式的显然是经过特别处理过的,平时用酷狗听音乐也没仔细看他的歌词有什么不同,只是与天天静听等不同的是可以逐字高亮显示歌词。
于是搜索了下发现有个java版的半成品解密代码,测试了下竟然还是“乱码”,巨坑!于是只有采用最原始的办法,对酷狗的flash播放器进行反编译,发现这段krc解密的ActionScript代码:
代码如下 | 复制代码 |
public function loaderCompleteHandler(param1:ByteArray) : void{ |
根据这段代码可以很快转换成php解析代码:
代码如下 | 复制代码 |
$enKey = array(64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105); |
上面的$krc_content为krc歌词压缩加密的文本内容,得到了解析后的krc明文文本歌词$krc_text,然后就可以很容易的转换成lrc歌词了,如下:
代码如下 | 复制代码 |
/** preg_match_all("/[(ar|ti|offset):(.+)]/",$krc_text,$matches); |
简单的示例:
代码如下 | 复制代码 |
$content = file_get_contents('1.krc'); |
分享一下,方便日后有类似需要的人查询!
curl来抓取网页内容是一个性能比较好的函数了,我们通常会使用它来快速模仿用户去访问我们要抓取的网页了,下面看一个例子有兴趣的朋友可进入参考。早上想写了一个抓取是京东618魅族专题页的抓取,然后想着自动下单购买,尼玛,算了,太多了,写到判断是否开始了,商品价格进行了变化,后边工程量有点大就懒的写了,如果要完善的话就需要写模拟登陆(这个不难)加入购物车,下单,下单的时候判断一下价格,如果价格个官方优惠价格相同就下单,不同就接着去抓。算了,懒的写了。下边是部分代码
代码如下 | 复制代码 |
<?php $tmp = pathinfo($data[1][0]); function get($url,$flag=true){
$return = curl_exec($ch); function getPrice($id){ $data = json_decode(get($priceUrl,false),true); echo get($addurl,false); |
php 在curl抓取的时候出现乱码
用站长工具查看我们抓取的网而不是使用了gzip压缩了,如果有返回"Accept-Encoding:gzip, deflate" 就是打开了gzip了,我们只要如下操作
代码如下 | 复制代码 |
$res=curl_exec($ch1); |
GBK或者UTF8汉字之类的乱码
代码如下 | 复制代码 |
mb_convert_encoding($str, 'utf-8', 'GBK,UTF-8,ASCII');就行了 |
我们设置页面为GBK兼容GB2312,GB2312是GBK的子集,所有GB2312编码的用GBK都能正确解出来
在php中碰到乱码多半是编码问题了,在这里我们分析了很久得出了下面fgetcsv读取csv文件乱码原因所在与解决办法。例子
代码如下 | 复制代码 |
function get_csv_contents( $file_target ){ $handle = fopen( $file_target, 'r'); while ($data = fgetcsv($handle, 1000, ",")) { fclose($handle); |
导入的csv文件是以ansi编码保存的,对于中文操作系统环境对应的应该就是gbk编码了,通过手动更改浏览器字符编码为gbk,乱码的情况消失了,于时进行了下面调整。
代码如下 | 复制代码 |
$data = eval(‘return ‘.iconv(‘gbk’,'utf-8′,var_export($data,true)).’;'); |
$data为需要转换编码的数组。
补充:LINUX FGETCSV读取GBK数据乱码
当Linux系统是使用的默认设置,则在该Linux服务器上对gbk的csv格式文件进行处理的时候,就会出现乱码现象。
解决方法是:
使用 setlocale 函数设置环境变量。比如要设置使用gb 的区域设置可以在fgetcsv前使用下面的语句。
代码如下 | 复制代码 |
setlocale(LC_ALL,array('zh_CN.gbk','zh_CN.gb2312','zh_CN.gb18030')); |
具体使用哪些locale 可以使用linux 命令 locale -a 查看系统支持哪些
日历程序代码我们一般会使用一些js插件来实现了,但是像博客这种日志分类我们会使用php程序来实现,下面一聚教程小编就来为你介绍一下吧。PHP日历程序,功能都是大众化的,可以下拉切换年月,上一年下一月下一年上一月,太另类的没去写,主要的写出来了,扩展起来就方便多了,标题为什么要叫精美呢,是因自已感觉界面还过得去,哈哈,让大家见笑了,不足之处还请指出。
效果代码如下
php日历核心代码
代码如下 | 复制代码 |
<?php echo '<tr>'; |
html+css代码
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
相关文章
php 中file_get_contents超时问题的解决方法
file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
- 下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
- ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
intellij idea快速查看当前类中的所有方法(推荐)
这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02- 1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
js导出table数据到excel即导出为EXCEL文档的方法
复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13- 批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
- ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果̳...2017-07-06
- 本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法
手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21- 最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
- 单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
- javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
连接MySql速度慢的解决方法(skip-name-resolve)
最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21- 本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25
- 步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
- EXCEL数据上传到SQL SERVER中的方法需要注意到三点!注意点一:要把EXCEL数据上传到SQL SERVER中必须提前把EXCEL传到服务器上.做法: 在ASP.NET环境中,添加一个FileUpload上传控件后台代码的E.X: 复制代码 代码如下: if...2013-09-23
- mysql锁定单个表的方法 复制代码 代码如下:mysql>lock table userstat read; mysql>unlock tables; 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INN...2014-05-31