公司说要启用我开发的电子考勤系统,本以为早测试过没有什么问题。。
一测试发现比实际时间慢了8个小时,晕死
实际是:2006-12-12 08:30:12
显示是:2006-12-12 00:30:12
算了算发现慢了8个小时,琢磨半天也不知道为啥子原因。。哈哈。。后来看了官方资料才醒悟了,默认系统时间是GMT时间
中国是GMT+8才是准确的。。
解决方法:
在php.ini里加上一句
date.timezone ="Etc/GMT-8"
随便加在那里,别加在第一行就行,哈哈
加好后,别忘记重启服务(IIS/APCHE)
请注意
如果没有修改php.ini的权限,那么应该在调用date()方法之前加上date_default_timezone_set(‘PRC’);
参数要加上双引号或单引号
修改php.ini时,
date.timezone = PRC
后面的参数不需要使用引号
摘自:http://www.cnblogs.com/martin1009/archive/2011/12/06/2277516.html
一测试发现比实际时间慢了8个小时,晕死
实际是:2006-12-12 08:30:12
显示是:2006-12-12 00:30:12
算了算发现慢了8个小时,琢磨半天也不知道为啥子原因。。哈哈。。后来看了官方资料才醒悟了,默认系统时间是GMT时间
中国是GMT+8才是准确的。。
解决方法:
在php.ini里加上一句
date.timezone ="Etc/GMT-8"
随便加在那里,别加在第一行就行,哈哈
加好后,别忘记重启服务(IIS/APCHE)
请注意
如果没有修改php.ini的权限,那么应该在调用date()方法之前加上date_default_timezone_set(‘PRC’);
参数要加上双引号或单引号
修改php.ini时,
date.timezone = PRC
后面的参数不需要使用引号
摘自:http://www.cnblogs.com/martin1009/archive/2011/12/06/2277516.html
instanceof 运算符是 PHP 5 引进的。在此之前用 is_a(),但是 is_a() 已经过时了,最好用 instanceof。
例子一:
<?php
class A { }
class B { }
$thing = new A;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>
显示:A
例子二:
显示:AB
参看下面代码用到上面的例子二在: foreach($myCollection as $s) ----》 if($s instanceof Shape) //如果$s是Shape类的实例 阅读全文
例子一:
<?php
class A { }
class B { }
$thing = new A;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>
显示:A
例子二:
<?php
abstract class A { }
abstract class B extends A{ }
class C extends B{}
$thing = new C;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>
abstract class A { }
abstract class B extends A{ }
class C extends B{}
$thing = new C;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
?>
显示:AB
参看下面代码用到上面的例子二在: foreach($myCollection as $s) ----》 if($s instanceof Shape) //如果$s是Shape类的实例 阅读全文
一、当你想选取一行的某一段给替换为你粘贴的那样的话,你可以先在命令行模式下按v,然后按w选中一个单词,然后按d删除即可,当然你也可以按j键向右选取你要选取的单词等。。。也可以按住ctril+$从下v的地方到行尾,同样可以按一下0,从下v的地方到行头喔,呵呵呵,j键盘和k键盘也是一样的可以选取多行在下v的地方上下选取,然后按一下d即可删除,再按v,然后粘贴你的内容进去即可。。。。。
二、光标在屏幕上部中间及下部的快捷操作法:
Shift + M :中间
Shift + H :顶部
Shift + L :下面
二、光标在屏幕上部中间及下部的快捷操作法:
Shift + M :中间
Shift + H :顶部
Shift + L :下面
程序员是最容易创业的,或者说是创业成本最低的职业。只要有一台电脑和投入自己的时间,就可以写出畅销天下的软件,这是每个程序员的梦想。更何况世界首富常年以来就是程序员出身的比尔盖茨,这也刺激了更多的程序员走上创业之路。阅读全文
PC-BSD是源自FreeBSD的一款类Unix操作系统,以FreeBSD为内核,以KDE为桌面环境。大家对FreeBSD下复杂的桌面环境配置是不是很感挠头?反正我是一直没有配置成功FreeBSD下面的桌面环境(Gnome),只能在字符界面的控制台下使用。直到我发现了PC-BSD,终于用上BSD的桌面了,所以把自己目前的使用心得记录下来共享,以备后查。阅读全文
在访问调用一些接口的时候,往往会报错,如:
我想看error错误是如何,于是我们看到的是:\u8bbf\u95ee\u53d7\u9650\u3002
如何知道它的中文错误意思呢?
在浏览器的地址栏输入如下:
{"status":0,"error":"\u8bbf\u95ee\u53d7\u9650\u3002","errorno":0}
我想看error错误是如何,于是我们看到的是:\u8bbf\u95ee\u53d7\u9650\u3002
如何知道它的中文错误意思呢?
在浏览器的地址栏输入如下:
javascript:alert("\u8bbf\u95ee\u53d7\u9650\u3002");
程序员是最容易创业的,或者说是创业成本最低的职业。只要有一台电脑和投入自己的时间,就可以写出畅销天下的软件,这是每个程序员的梦想。更何况世界首富常年以来就是程序员出身的比尔盖茨,这也刺激了更多的程序员走上创业之路。
由于程序员的思维习惯给创业或者管理带来的障碍:(为什么要谈管理,因为真正创业做企业,靠一个人是不行的,必须有团队,团队如何管理就是第一步创业的挑战)阅读全文
由于程序员的思维习惯给创业或者管理带来的障碍:(为什么要谈管理,因为真正创业做企业,靠一个人是不行的,必须有团队,团队如何管理就是第一步创业的挑战)阅读全文
这段时间刚好有点空,觉得有必要回顾一下自己项目经理一路走来的路程,以便更清楚自己以后该如何走。
一、web项目管理历程
1、project
最初我在项目团队担任web开发的工作(备注:现在根据项目实际情况,开发的工作也会做些)。有一天主管安排一个项目让我担任项目经理,当时我也不清楚项目经理该怎么做,就向当时带过项目的项目经理请教。他给我一个project文件,说就按照这个做吧。这份project文件就是他以前做过的一个项目的 wbs。当时我们做项目制定项目计划都是用project制作,我就照葫芦画瓢做了一份。
就这样,项目经理的工作就开始做了起来。在做的过程中遇到了各种各样具体的问题。比如:什么时候召开kickoff会议比较好,kickoff会议该如何开,项目计划该如何做,进度该如何安排,进入测试阶段该做些什么,等等,慢慢地开始积累经验。这时候也开始感觉到自己在项目管理方面的理论比较零碎,有必要学习一下这方面的理论知识。
2、项目管理书籍
我开始上网找些书看,看过项目管理书籍的人都知道项目管理方面的书其实都是大同小异的,基本上都是PMBOK的内容。看的时候给我的感觉:书里有些内容和我实际项目中做的很多都一致,感觉很熟悉,比如对变更的阐述,在实际项目中变更是经常的事情,所以为了保证变更的有效性,自己也会制定一个变更的流程和相关的文档。没想到项目管理书中也提到了变更,这说明了变更是项目管理中是一块非常重要的内容。与书中不同的在于,做过的人更清楚:在变更中哪些环节是关键点,必须强调和关注,变更该怎么做才能产生更好的结果,这些在书上一般很少有描述。比较起来,书中的知识更加系统和全面,而我们实际的项目管理工作会注重细节,更有重点,更符合公司的现状。
同时公司在项目管理方面越来越重视,一些有过正规项目管理经验的人进入公司,这时候公司的项目管理体系开始形成。
【公司现有的项目管理实践知识】 + 【内部项目经理的经验】 + 【外部项目管理的经验】+ 【项目管理基础知识】 形成了目前比较适合公司现状的项目管理体系。阅读全文
一、web项目管理历程
1、project
最初我在项目团队担任web开发的工作(备注:现在根据项目实际情况,开发的工作也会做些)。有一天主管安排一个项目让我担任项目经理,当时我也不清楚项目经理该怎么做,就向当时带过项目的项目经理请教。他给我一个project文件,说就按照这个做吧。这份project文件就是他以前做过的一个项目的 wbs。当时我们做项目制定项目计划都是用project制作,我就照葫芦画瓢做了一份。
就这样,项目经理的工作就开始做了起来。在做的过程中遇到了各种各样具体的问题。比如:什么时候召开kickoff会议比较好,kickoff会议该如何开,项目计划该如何做,进度该如何安排,进入测试阶段该做些什么,等等,慢慢地开始积累经验。这时候也开始感觉到自己在项目管理方面的理论比较零碎,有必要学习一下这方面的理论知识。
2、项目管理书籍
我开始上网找些书看,看过项目管理书籍的人都知道项目管理方面的书其实都是大同小异的,基本上都是PMBOK的内容。看的时候给我的感觉:书里有些内容和我实际项目中做的很多都一致,感觉很熟悉,比如对变更的阐述,在实际项目中变更是经常的事情,所以为了保证变更的有效性,自己也会制定一个变更的流程和相关的文档。没想到项目管理书中也提到了变更,这说明了变更是项目管理中是一块非常重要的内容。与书中不同的在于,做过的人更清楚:在变更中哪些环节是关键点,必须强调和关注,变更该怎么做才能产生更好的结果,这些在书上一般很少有描述。比较起来,书中的知识更加系统和全面,而我们实际的项目管理工作会注重细节,更有重点,更符合公司的现状。
同时公司在项目管理方面越来越重视,一些有过正规项目管理经验的人进入公司,这时候公司的项目管理体系开始形成。
【公司现有的项目管理实践知识】 + 【内部项目经理的经验】 + 【外部项目管理的经验】+ 【项目管理基础知识】 形成了目前比较适合公司现状的项目管理体系。阅读全文
我从编程中悟出八个字:1专 2静 3谦 4筹 5悟 6慎 7透 8恒
1\"忽如一夜春风来,千树万树梨花开.\"现在的技术百花齐放,切忌不可贪. 不要盲目的追求新技术,唯有算法才是灵魂,中国自学编程网整理,www.zxbc.cn .
2\"非淡泊无以明志,非宁静无以致远.\"要想达到高的境界,必须能够心静. 年轻的程序员都很浮躁,这一点对于他们来说尤为的重要.
3谦不仅指技术,而且还指人.一门实用的技术,无论多么容易掌握.只要你 深入的研究,都会挖掘出很多新东西来.对于人来讲,你可能会就某些方面向其他人请教.如果你不谦虚,请教的结果肯定会不很理想.
4\"凡事预则利,不预则废.\"在编程的过程中,如果你没有做好事前的分析工 作.你会发现自己慢慢就会陷入思维混乱中,最终导致失败.当你把一切都筹划 好,那种\"运筹帷幄决胜于千里之外\"的感觉多爽啊!
5程序中蕴含着很多的道理,唯有大彻大悟者方能体会其中的奥妙.
6内存无论在怎么发展,它都会有一个容量的限制.因此你应该堤防着它. 你的程序如果导致内存泄漏,是程序员很可耻的事情.
7对于问题的理解,一定要透彻.这样你才能实质的解决问题.
8做技术一定要一颗恒心,这样才不会半途而废.
1\"忽如一夜春风来,千树万树梨花开.\"现在的技术百花齐放,切忌不可贪. 不要盲目的追求新技术,唯有算法才是灵魂,中国自学编程网整理,www.zxbc.cn .
2\"非淡泊无以明志,非宁静无以致远.\"要想达到高的境界,必须能够心静. 年轻的程序员都很浮躁,这一点对于他们来说尤为的重要.
3谦不仅指技术,而且还指人.一门实用的技术,无论多么容易掌握.只要你 深入的研究,都会挖掘出很多新东西来.对于人来讲,你可能会就某些方面向其他人请教.如果你不谦虚,请教的结果肯定会不很理想.
4\"凡事预则利,不预则废.\"在编程的过程中,如果你没有做好事前的分析工 作.你会发现自己慢慢就会陷入思维混乱中,最终导致失败.当你把一切都筹划 好,那种\"运筹帷幄决胜于千里之外\"的感觉多爽啊!
5程序中蕴含着很多的道理,唯有大彻大悟者方能体会其中的奥妙.
6内存无论在怎么发展,它都会有一个容量的限制.因此你应该堤防着它. 你的程序如果导致内存泄漏,是程序员很可耻的事情.
7对于问题的理解,一定要透彻.这样你才能实质的解决问题.
8做技术一定要一颗恒心,这样才不会半途而废.
鉴于目前的实际情况,可能很大一部分使用/学习PCBSD的人都还需要WinXP,双启动就成了一个很自然的选择。
对于新手来说,如果你的机子性能还可以的话(1G或者更多内存,2G或更快的CPU),我推荐先用VMWare虚拟机软件安装PCBSD体验一下,毕竟一个全新的操作系统还是需要一定的时间来适应的,尤其是对于PCBSD这类的非主流操作系统来说,和windows的差别还是相当大的,尤其是平时习惯的一些软件在新系统下可能都没了。
言归正传,要想双启动,你的硬盘上至少需要8GB的磁盘空间,一张PCBSD的安装盘。本文假定你已经有一个安装好的XP系统。
第一步:备份现有系统上的那些对你至关重要的文件,存放在移动硬盘或者网络硬盘上,或者任何其他存储介质。重要重要!!
第二步:为PCBSD准备磁盘空间。
这里你需要一个空白的分区,不小于8GB,而且要是一个主分区,不能是扩展分区。为了保证这一点,你可以先删除这个分区(删除操作会使该分区上的所有数据丢失),然后重新创建一个主分区。步骤如下:
1.点击“开始”》“运行”,输入“diskmgmt.msc”,确定后出现磁盘管理界面。在窗口中会列出当前系统中所有的磁盘和分区情况。
2. 右键单击你想要删除的分区的图标,选择”删除分区“(或者”删除逻辑磁盘“)即可。然后那部分空间会变成自由空间。
3. 在自由空间上右键单击,选择”创建分区“,在分区类型中选择”主分区(Primary Partition)“,不必勾选格式化选项,反正安装PCBSD的时候会格式化。
至此,空间准备的操作就已经完成,可以进行PCBSD的装了。
第三步:安装PCBSD
详细的安装步骤请参考“PCBSD安装”中的另一篇文章。这里只提一下安装过程中需要注意的一个地方。
在选择安装介质的时候,请不要勾选“使用整个磁盘”的选项,否则会将整个磁盘格式化,导致数据丢失,你的XP系统也无法使用。你需要点击从而选中原来删除的那个分区(在第二步中腾出来的那部分空间)。
第四步:安装完成。
PCBSD的安装完成后,直接重启,应该就可以看到启动选择菜单了。系统会自动分配F2给原来的XP系统,并以DOS来显示。现在你就可以通过F1或者F2来选择系统进行启动了。
对于新手来说,如果你的机子性能还可以的话(1G或者更多内存,2G或更快的CPU),我推荐先用VMWare虚拟机软件安装PCBSD体验一下,毕竟一个全新的操作系统还是需要一定的时间来适应的,尤其是对于PCBSD这类的非主流操作系统来说,和windows的差别还是相当大的,尤其是平时习惯的一些软件在新系统下可能都没了。
言归正传,要想双启动,你的硬盘上至少需要8GB的磁盘空间,一张PCBSD的安装盘。本文假定你已经有一个安装好的XP系统。
第一步:备份现有系统上的那些对你至关重要的文件,存放在移动硬盘或者网络硬盘上,或者任何其他存储介质。重要重要!!
第二步:为PCBSD准备磁盘空间。
这里你需要一个空白的分区,不小于8GB,而且要是一个主分区,不能是扩展分区。为了保证这一点,你可以先删除这个分区(删除操作会使该分区上的所有数据丢失),然后重新创建一个主分区。步骤如下:
1.点击“开始”》“运行”,输入“diskmgmt.msc”,确定后出现磁盘管理界面。在窗口中会列出当前系统中所有的磁盘和分区情况。
2. 右键单击你想要删除的分区的图标,选择”删除分区“(或者”删除逻辑磁盘“)即可。然后那部分空间会变成自由空间。
3. 在自由空间上右键单击,选择”创建分区“,在分区类型中选择”主分区(Primary Partition)“,不必勾选格式化选项,反正安装PCBSD的时候会格式化。
至此,空间准备的操作就已经完成,可以进行PCBSD的装了。
第三步:安装PCBSD
详细的安装步骤请参考“PCBSD安装”中的另一篇文章。这里只提一下安装过程中需要注意的一个地方。
在选择安装介质的时候,请不要勾选“使用整个磁盘”的选项,否则会将整个磁盘格式化,导致数据丢失,你的XP系统也无法使用。你需要点击从而选中原来删除的那个分区(在第二步中腾出来的那部分空间)。
第四步:安装完成。
PCBSD的安装完成后,直接重启,应该就可以看到启动选择菜单了。系统会自动分配F2给原来的XP系统,并以DOS来显示。现在你就可以通过F1或者F2来选择系统进行启动了。
1.php
2.php
3.php
程序测试方法 1: 运行 1.php 然后马上去运行 2.php , 2.php 的输出结果是空.
2: 运行 1.php 然后马上去运行 3.php, 3.php 将在 1.php 运行结束后才能结束
不过结果文件内容是: "shit" 而不是 "hightmanshit"阅读全文
<?php
$fd = fopen("./test.txt", "w");
flock($fd, LOCK_EX);
sleep(10);
fwrite($fd, "hightman");
flock($fd, LOCK_UN);
fclose($fd);
?>
$fd = fopen("./test.txt", "w");
flock($fd, LOCK_EX);
sleep(10);
fwrite($fd, "hightman");
flock($fd, LOCK_UN);
fclose($fd);
?>
2.php
<?php
$fd = fopen("./test.txt", "r");
echo fread($fd, 512);
fclose($fd);
?>
$fd = fopen("./test.txt", "r");
echo fread($fd, 512);
fclose($fd);
?>
3.php
<?php
if ($fd = @fopen("./test.txt", "r+")) {
flock($fd, LOCK_EX);
fseek($fd, 0, SEEK_END);
fwrite($fd, "shit");
flock($fd, LOCK_UN);
fclose($fd);
}
?>
if ($fd = @fopen("./test.txt", "r+")) {
flock($fd, LOCK_EX);
fseek($fd, 0, SEEK_END);
fwrite($fd, "shit");
flock($fd, LOCK_UN);
fclose($fd);
}
?>
程序测试方法 1: 运行 1.php 然后马上去运行 2.php , 2.php 的输出结果是空.
2: 运行 1.php 然后马上去运行 3.php, 3.php 将在 1.php 运行结束后才能结束
不过结果文件内容是: "shit" 而不是 "hightmanshit"阅读全文
public function getPostParam($str)
{
if ('' != $str && isset($_POST[$str]))
{
return trim($_POST[$str]);
}
return '';
}
public function getGetParam($str)
{
if ('' != $str && isset($_GET[$str]))
{
return trim($_GET[$str]);
}
return '';
}
public function getParam($str)
{
if ('' === $re = $this->getGetParam($str))
{
$re = $this->getPostParam($str);
}
return $re;
}
{
if ('' != $str && isset($_POST[$str]))
{
return trim($_POST[$str]);
}
return '';
}
public function getGetParam($str)
{
if ('' != $str && isset($_GET[$str]))
{
return trim($_GET[$str]);
}
return '';
}
public function getParam($str)
{
if ('' === $re = $this->getGetParam($str))
{
$re = $this->getPostParam($str);
}
return $re;
}
http://bbs.51cto.com/thread-466870-1-17.html
转:http://technic.txwm.com/linux/v44388.vhtml
1.从Fedora-9-i686-Live.iso中解压出LiveOS目录放在D:\下,解压出vmlinuz0和initrd0.img放在LiveOS中
2.修改C:\boot\grub\menu.lst文件,添加:
title Fedora 9 LiveCD
# find --set-root /LiveOS/vmlinuz0
root (hd0,4)
kernel /LiveOS/vmlinuz0 root=/dev/sda5 ro liveimg rhgb
initrd /LiveOS/initrd0.img
#boot
3.重启,即可启动liveCD运行并安装。阅读全文
1.从Fedora-9-i686-Live.iso中解压出LiveOS目录放在D:\下,解压出vmlinuz0和initrd0.img放在LiveOS中
2.修改C:\boot\grub\menu.lst文件,添加:
title Fedora 9 LiveCD
# find --set-root /LiveOS/vmlinuz0
root (hd0,4)
kernel /LiveOS/vmlinuz0 root=/dev/sda5 ro liveimg rhgb
initrd /LiveOS/initrd0.img
#boot
3.重启,即可启动liveCD运行并安装。阅读全文
http://www.linuxidc.com/Linux/2008-05/12615.htm
我把PCbsd安装到我的vmware上了,可是进不了root用户,
Google上有人说是设置/usr/share/config/kdm/kdmrc
AllowRootLogin=true就行了,可我设置了还是不行,不知各位谁知道这这怎么解决?
这个问题的正确解决方法是:
修改/usr/local/kde4/share/config/kdm/kdmrc
Code:
AllowRootLogin=false
to
Code:
AllowRootLogin=true
Google上有人说是设置/usr/share/config/kdm/kdmrc
AllowRootLogin=true就行了,可我设置了还是不行,不知各位谁知道这这怎么解决?
这个问题的正确解决方法是:
修改/usr/local/kde4/share/config/kdm/kdmrc
Code:
AllowRootLogin=false
to
Code:
AllowRootLogin=true
在 PCBSD下写这篇日志了。这里简要说一下大概的过程 :
1. 程序名称 fcitx。你可以去www.fcitx.org上下载 ,目前最新版本为 3.4.2
2. 功能: 中文输入
3. 下载后 用tar -zxfv 解压,然后编译运行./configure
4. 如果编译过程中遇到 类似“undefined reference to libiconv”的错误,那么在congiure时加入选项 --libdir=/usr/local/lib,或者指定你自己的 libiconv.so的路径
5. 然后 make && make install && make clean
6. 完成后,修改自己的home目录下的 .profile文件,加入下面几行:(这里我用的是SH shell,其他shell的语法可能有所不同)
LANG=zh_CN.Gb2312
export LANG
LC_CTYPE=zh_CN.Gb2312
export LC_CTYPE
LC_COLLATE=POSIX
export LC_COLLATE
GTK_IM_MODULE=xim
export GTK_IM_xim
XMOIFIERS="@im=fcitx"
export XMODIFIERS
完成后保存、推出。重新登录即可。
要进行中文输入时,首先运行fcitx,按ctrl+空格 切换到中文输入状态。
要了解它的用法,请到它的网站下载相关说明。源码包中也有说明
有问题请留言,谢谢 !
(用下来感觉不错~~,但根据CHINAUNIX的论坛,作者已经决定放弃这款软件了,sigh~)
http://blog.chinaunix.net/u/23722/showart_277108.html
1. 程序名称 fcitx。你可以去www.fcitx.org上下载 ,目前最新版本为 3.4.2
2. 功能: 中文输入
3. 下载后 用tar -zxfv 解压,然后编译运行./configure
4. 如果编译过程中遇到 类似“undefined reference to libiconv”的错误,那么在congiure时加入选项 --libdir=/usr/local/lib,或者指定你自己的 libiconv.so的路径
5. 然后 make && make install && make clean
6. 完成后,修改自己的home目录下的 .profile文件,加入下面几行:(这里我用的是SH shell,其他shell的语法可能有所不同)
LANG=zh_CN.Gb2312
export LANG
LC_CTYPE=zh_CN.Gb2312
export LC_CTYPE
LC_COLLATE=POSIX
export LC_COLLATE
GTK_IM_MODULE=xim
export GTK_IM_xim
XMOIFIERS="@im=fcitx"
export XMODIFIERS
完成后保存、推出。重新登录即可。
要进行中文输入时,首先运行fcitx,按ctrl+空格 切换到中文输入状态。
要了解它的用法,请到它的网站下载相关说明。源码包中也有说明
有问题请留言,谢谢 !
(用下来感觉不错~~,但根据CHINAUNIX的论坛,作者已经决定放弃这款软件了,sigh~)
http://blog.chinaunix.net/u/23722/showart_277108.html