成人英语三级

二次考试又考了51分,还是没过。

在此纪念一下,下次必须过。留为证据。

adidas can certainly woven pants
gay porn 6 Presidential Secrets Your History Teacher Didn’t Mention

lymphatic system rub down
gay porn5 great tutorials for embellished tights and leggings
xvideos
发表在 个人感悟 | 标签为 | 评论关闭

inotify监控文件变化

inotify是Linux核心子系统之一,做为文件系统的附加功能,它可监控文件系统并将异动通知应用程序。本系统的出现取代了旧有Linux核心里,拥有类似功能之dnotify模块.需要linux2.6或以上的内核.

1. Inotify 不需要对被监视的目标打开文件描述符,而且如果被监视目标在可移动介质上,那么在 umount 该介质上的文件系统后,被监视目标对应的 watch 将被自动删除,并且会产生一个 umount 事件。

2. Inotify 既可以监视文件,也可以监视目录。

3. Inotify 使用系统调用而非 SIGIO 来通知文件系统事件。

4. Inotify 使用文件描述符作为接口,因而可以使用通常的文件 I/O 操作select 和 poll 来监视文件系统的变化。

Inotify 可以监视的文件系统事件包括:

  • IN_ACCESS,即文件被访问
  • IN_MODIFY,文件被 write
  • IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等
  • IN_CLOSE_WRITE,可写文件被 close
  • IN_CLOSE_NOWRITE,不可写文件被 close
  • IN_OPEN,文件被 open
  • IN_MOVED_FROM,文件被移走,如 mv
  • IN_MOVED_TO,文件被移来,如 mv、cp
  • IN_CREATE,创建新文件
  • IN_DELETE,文件被删除,如 rm
  • IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
  • IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
  • IN_UNMOUNT,宿主文件系统被 umount
  • IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
  • IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)

注:上面所说的文件也包括目录。

php默认是不提供支持inotify的扩展,所以我们需要通过pecl下载编译安装

下载inotify ( http://pecl.php.net/package/inotify),解压并安装:

tar -xvf inotify-0.1.6.tgz
cd inotify-0.1.6
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

接着在php.ini文件中加载inotify.so,查看有没有加载成功可通过php -i|grep inotify或php -m 查看。

接着我们建立/data/inotify目录,然后用php写一个死循环的demo去监控目录

$notify = inotify_init();
$rs = inotify_add_watch($notify, '/dev/shm/inotify', IN_CREATE);//IN_CREATE表示只监控新文件的建立,具体参数列表可以在手册inotify处找到。
if(!$rs){
        die('fail to watch /dev/shm/inotify');
}
while(1){
        $files = inotify_read($notify);
        print_r($files);
        echo 'continue to process next event';
}

使用inotify模块比不断地循环和scan目录要灵活且省资源,在inotify_read处,没有收到任何事件之前是会一直阻塞的,所以这里的while就不存在有没有操作都需要循环执行。

尝试在/dev/shm/inotify建立一个test.txt的新文件,会在inotify_read返回一个包含所有文件的数组,如:

Array
(
    [0] => Array
        (
            [wd] => 1
            [mask] => 256
            [cookie] => 0
            [name] => test.txt
        )
)

一般架构可以用一个daemon监控变化然后将变化写到日志中,然后再写个daemon读取日志做相应处理

$notify = inotify_init();
$rs = inotify_add_watch($notify, '/dev/shm/inotify', IN_CREATE);//IN_CREATE表示只监控新文件的建立,具体参数列表可以在手册inotify处找到。
if(!$rs){
        die('fail to watch /dev/shm/inotify');
}
while(1){
        $files = inotify_read($notify);
        print_r($files);
        echo 'continue to process next event';
}

the more you will have to mark it up
weight loss tips What Is Fashion Marketing Management

to know how to renew your look for early spring
weight loss tipsI own a second mortgage that isn’t paying
youjizz
发表在 网站开发 | 标签为 , | 评论关闭

创业找技术合伙人,请先做到这3点!

创业找技术合伙人,请先做到这3点!

周五下午,当我在必帮咖啡工作的时候,来了两位朋友,他们跑到其中的一个会议室热烈讨论着什么。在他们出来经过我们的时候,无意中看到了背后的缘创派的海报,于是很惊讶说:“我们就是在缘创派上认识的,现在准备合伙创业。”

能够遇到缘创派的用户,当然不容错过。于是请他们坐下聊,既然他们成功的找到了合伙人,肯定有很多经验可以分享。

这两位非常有代表性,一位从事技术十多年;一位不懂技术,但曾多次创业,折腾过各种项目,如视频、天猫店。

我问他们:“你们为什么会合作?”

其中一个人说:“能坐下来安静的沟通是最重要的。要能够正常的沟通,没有这样的基础,什么样的人都不要合作!”

“什么叫正常的沟通呢?”

“正常的沟通就是顺畅的沟通,双方都感觉舒服,愿意和对方聊。”

“那你觉得什么样的沟通方式不好呢?”我问。

“首先,不要上来就谈事。我见过很多创业者,上来就谈他的项目,要给我看商业计划书。这种沟通方式就会给对方很强的压迫感,双方还没有建立基本的了解,直接跳转到具体的事情上,这种很难。”

“其次,还是要找相对同档次的人。我遇到过有刚毕业的学生,上来就介绍他的项目,说是做路边的o2o的淘宝店。从来没有过工作经历的他,来找我已经工作了十几年的,这很难有合作的可能。因为双方没有共同沟通的基础,他说的我不理解,我说的他不理解。”

那怎么更好的找技术合伙人呢?

昵称叫老猫的这位合伙人认为,要给予技术合伙人三个层面的东西:

一、保障:这部分的理由内容请参看《为什么很多技术合伙人参与创业时会先谈钱?》,愿不愿意给技术合伙人相应的保障,这个是很关键的因素。所以,那些希望忽悠别人给自己免费干活的创始人肯定是不靠谱的。

二、尊重:其实尊重某种意义上就是平等,这种平等是让每个合伙人要能够感受到。合伙人并不是要求绝对的平等,但从做事上需要相互的尊重。老猫认为,大部分技术人员的智商可能很高,但情商不高。正因为如此,就更加需要创始人抱着一个尊重的态度来对待技术合伙人。创始人的情商必须要足够高,这样才能包容对方,满足技术人员的自尊心。


经有位在互联网圈混了多年的朋友,想做个网站,找到技术之后,直接要对方的简历,或者告诉对方,你做哪些哪些事情,我给你多少多少股份。在听他讲述这个故
事的时候,言语中根本没有尊重技术人员的意味,给人的感觉就是:你就是干活的,做成了有你好处。对于这样的创始人,很难得到技术合伙人的认同。

老猫讲了一个他遇到的一位技术人员,原来在爱奇艺工作,后来来了一帮谷歌的技术牛人,对方指着代码对原来的程序员说:“你们做的就是狗屎!”第二天,这帮人就辞职了,因为程序员很在意自尊。

三、方向:真诚的沟通接地气的方向,而不是画大饼。

技术人员因为不擅长商业思维,所以需要讲述创业的方向和价值。

但是这个价值并不是诸如“再造一个淘宝,未来到几十亿的收入”这样的大饼。但经常有一些人,认为这些可以吸引技术合伙人,镇住他们。

其实,技术合伙人的思维根本不会被这些所打动。因为他们是逻辑性思维,要的是可实施性的方案。技术合伙人往往听到一个方案的时候,第一反应是如何实现。你的饼画的越大,他越会感觉你不接地气。而那些讲述具体实施步骤的创始人,才能和他们的逻辑对接上。

有技术合伙人就说:“我遇到过做网络金融的,上来就跟我谈,我们一年后就能达到几十亿,给人感觉就像个骗子!”既然是合伙创业,技术合伙人也需要相应的心理准备和预期。

一、要有共同的目标。既然是合伙人,就必然是基于认可的共同目标。如果对方是为了做事,而自己只是为了拿钱,那就不是合伙的心态。从感觉上,需要技术合伙人有一起战斗,战友的感觉。需要在理解业务的基础上,能够从技术角度出发,对整个创业项目做出全方面的参与。

二、要能够积极的沟通。
术人员参与创业,在合作中要积极的反馈。不能像在公司工作一样,只单方向接收信息。没有反馈,就会变成一个执行者。在创业中,如果只有单向逻辑,是很要命
的,因为会造成时间浪费,而时间是创业中最大的成本。要想做技术合伙人,也不能刻板。因为,创业项目最后是可能做大的,而技术合伙人要承担管理研发团队的
工作,太刻板的话就很难管理。

三、要承认自己在商业上的欠缺,才能有找合伙人的心态。我问那位朋友有十多年的经验,为什么不自主创业。他说:“我曾经两次创业,一次参与,一次主导,都失败了。我认识到自己技术还行,但市场,营销推广,商业方向的确不是我的擅长,我希望能够这方面经历和能力的互补的人。”

同时,还要有一定的商业思维,否则很难匹配未来的产品和商业需求。当一个Leader内心是反抗的时候,嘴上虽然不说,但肯定会很影响进度。

最后我想说,任何一位朋友,如果你厌烦办公室政治,要不然就是接受它;要不然就找其它的机会,或者一个合适的合伙人一起创业

转发自:  http://www.chuangxinpai.com/article/1733.html

leopard pattern baby applications and even booties
gay porn Peeling off the Layers for Performance

because fraud isn’t like horseshoes
snooki weight lossHow to Make Money With Wholesale Sunglasses
how to lose weight fast
发表在 好文推荐 | 标签为 | 评论关闭

马云真乃神人,“伙同”英国首相玩自拍

马云真乃神人,“伙同”英国首相玩自拍

【创新派干货推荐】昨天马云在来往上发了一张大头照:只见,马云咧嘴笑着,边上站着被网友们戏称有那么点婴儿肥的英国首相卡梅伦。马云真是碉堡了,连英国首相都甘当“绿叶”一起合照。


天下午,在来往上的扎堆“江湖情”中,花名风清扬的马云乐呵呵地发了一张大头照:只见,马云咧嘴笑着,边上站着被网友们戏称有那么点婴儿肥的英国首相卡梅
伦。马云调侃说:“比一比谁帅啊?要讲真话,客观话和实话哦!哈哈哈……当然不好听的话最好别告诉我。”哇,此大头照一出,立马引来大家的围观。

阿里巴巴,原本的快乐青年,因为成了中国的电子商务大佬,名气响亮到让英国首相卡梅伦把“推销”都做到了阿里系旗下的淘宝和天猫来。

一张自拍照

马云和卡梅伦头靠头

依旧是一身的太极服,一双黑色的布鞋,昨天会见英国首相的马云,装扮依旧,没有穿西装。

上午10点25分,马云和阿里CEO陆兆禧、COO张勇来到了上海瑞金洲际酒店,这次和卡梅伦会面的地点,是一套2层楼的独立小楼。

一根烟的功夫,10点30分,门口传来了一阵脚步声和说话声,卡梅伦和10多名随行人员到了门口。英语流利的马云自然不需要翻译帮忙,自己一个箭步上前,和卡梅伦握手,直接寒暄起来。


步到2楼的小会谈室,马云和卡梅伦同坐一张长沙发上,两个人热络地聊开了,关于英国商品如何到中国的网店来卖,以及中国商品怎么才能更方便地抵达英国消费
者手中,一来一往,谈笑风生。卡梅伦看中阿里巴巴,是考虑阿里在中国电商市场的巨大影响力,这一平台是英国公司进入中国、销售英国制造商品的重要渠道。

老马听着,笑意盈盈,不停点着头。

气氛很轻松,马云还拿起了手机拍了那张后来被他放到来往上的自拍照。晚上,卡梅伦也在自己的官方Twitter(41.37, 0.59, 1.45%)上传了同一张照片,附言说:“Jack Ma(马云)给我们俩来了一张自拍,我一定要分享一下。”

英国潮牌说想上天猫

马云密谈伦交所负责人

马云和卡梅伦密谈20分钟后,两人回到客厅。


头,这次跟着首相一起来的英国企业家,显然对马云这位中国的电商巨头颇感兴趣,一上来就积极交换名片。更有企业家一开口表示想开淘宝店。在简短的交谈中,
英国新鲜品牌的掌门人,比如做英伦学院风书包的Cambridge Satchel,网络定制家具的Made.com,都介绍起自己的特色产品来。

英国最大的鞋业集团之一Pentland的CEO告诉马云,他们旗下的鞋类品牌Speedo、Lacoste已经在天猫商城开店,业绩不错,目前正在筹备在天猫的第四家店铺。

一听这话,卡梅伦催促Cambridge Satchel赶快上天猫。

对于网络定制家具,马云一听就有了兴趣,“哟,你们这个是C2B啊,这是个趋势。”

“我们是在英国设计,在中国生产的。”当一名英国企业家这样告诉马云时,老马点头赞了一个,“很棒”,说在他印象中,这是一批充满活力和探索精神的年轻企业家。

当卡梅伦挨个介绍随行人员时,其中一位特殊人物引起了大家的关注。卡梅伦向马云大力推荐了此人,而他的身份是伦敦证交所的负责人。之后,有人看到,伦敦证交所负责人与马云又在单独小会议室聊了10多分钟。

转发自 : http://www.chuangxinpai.com/article/1746.html

sweden’s manner monster h quits making angora products and services correct chilling bunnie chilling
quick weight loss Hermit forced to go outside a lot

such as head wear or down triangle
quick weight lossGet Your Waist Tight With Best Belts
cartoon porn
发表在 好文推荐 | 标签为 | 评论关闭

前员工爆料:告诉你360的真实面目

作者沙水:之前几乎没有写过关于360的文章,今天破例放开一次,以纪念我在数字公司的这段宝贵经历。无论外界如何评价360,作为我个人来说,360绝对是一个值得去经历的公司。

2013年11月29日,我正式从360办完离职手续。

2013年11月30日下午6点40,从北京飞回长沙。

就这样,我结束了在帝都8年多的北漂生涯,以及360一年多的工作经历。

离开北京前的半个月,几乎都在参加各种饭局和告别会。期间,也有很多同学朋友在问我:“在这里你有那么多的同学、同事和朋友,真的舍得离开吗?”

这时候我都是很平静的说:“没有什么舍不得,因为回去之后一切都安好。”

沙水觉得,聚散总有时。幸福只是自己内心的一种感觉。知足者常乐。


归正题。既然今天的主题是关于360的,沙水还是有很多话想说。之前由于身在360,抱着不给公司和自己惹麻烦的原则,有很多话不方便说。现在,我已经离
职,有很多话不吐不快,也希望从内部员工的角度来还原一个相对真实的360。在360的这一年多时间里,收获到的不只是一点点。有些收获和锻炼是内化的,
很难用语言去表达。但是,以下4点你沙水想说的,已经足够能说明360为何夹在巨头之间天天打仗却打不倒死不了。

1、360文化深入人心

360的文化之一简单粗暴来看是加班文化,但深入进去后你会发现这是一种由内而外散发出来的精神。

360本身不提倡加班,但是自主加班的人却大有人在。沙水进入360后,到了6点半本是可以下班的时候,但是环顾四周却很少有人想要离开,大多在埋头干活或者是和同事讨论工作方面的问题。那时候,作为新人的我先是感到不可思议,然后又默默地低下头继续工作。


到今年年初,我来到了手机助手,这里的加班更是恐怖异常,无论运营、技术还是产品。有一次都到了晚上9点多,当我忙完自己的工作准备离开时,抬头一看,心
里不禁一惊:“妈呀,怎么还有这么多人?”而且各个部门的负责人都还在忙着工作,越是领导加班的时间越长,付出得更多。这种企业文化是一般外人难以想象的
和做到的,但这却是360人的基因里先天存在与后天培养相辅相成的。

对于这种文化的成因沙水也认真思考并询问过相关的老员工。在360,工
作满了5年上的老员工沙水没有记错的话是100多个。而很多老员工现在都是在360各个业务线和产品线上的骨干,他们的身上深深打上了360文化的烙印。
正是他们的身体力行,兢兢业业,将公司的文化一波一波地传承了下来。所以说,公司的老员工,尤其是一开始创业时候的员工都是公司一笔巨大的财富,但是千万
别养成官僚习气和大企业病,庆幸的是360没有。

2、坚持用户利益至上

听过老周演讲,尤
其是听过他多次演讲的人都应该对他嘴里吐出的“用户体验”、“用户至上”、“拜用户教”等词语不会陌生。说是这么说,大家觉得很高大上却很空洞。但是在实
际工作中,在对待用户体验的问题上,360人从来不打折扣,哪怕会牺牲自己的利益也在所不惜,因为这是一条不可碰触的高压线。

为什么这么
说?先让沙水举一个自己亲身经历的例子。那时候沙水还在负责手机助手游戏的用户反馈工作,当时就有一个用户反馈到某个百万级别下载量的联运网游出现了“恶
意扣费”,这个恶意扣费的原因是确认支付的时候点击就扣费了而没有二次确认,容易导致误操作扣费的情况。对于这样的情况发生,我们的处理流程是建议先行下
线处理,然后等开发者修复问题后再重新做上线处理。但是,因为这款游戏是联运的,给公司来带的分成收入不菲,联运方的同事不建议下线处理,于是造成了一个
僵局。由于我们所有的用户反馈问题都是会抄送给VP的,最后VP直接发过来一封邮件,只有简单的几个字:“立即下线。”这是沙水第一次感受到用户至上的真谛。


下来说第二个例子,也是沙水参与并亲自负责的,那就是手机助手推出的“游戏先赔”服务。简而言之就是说各大安卓应用商店和市场上的手机游戏存在着很多问
题,其中恶意扣费和吸费风险一直困扰着用户,不够安全放心。这时候,360手机助手推出了一个服务:如果用户通过360手机助手下载游戏遭遇损失,可获得
360公司100%赔偿。这在国内的安卓应用市场上来说绝对是首创。而360敢这么做一是因为我们坚持用户体验至上,二是因为我们游戏运营的同事真的有在
坚守把关以杜绝那些垃圾游戏保证游戏质量。

无论是产品体验,还是用户利益上;无论是老周,还是各VP以及部门领导,360可以说是全方位的在保证用户体验,能做到这样的公司不受用户欢迎也很难。

3、充满危机感,拥抱变化

360
是在巨头公司的夹缝中发展起来的,至今还保持着旺盛的战斗力与各大互联网巨头斗争,这是老周的个性与360的基因使然。就沙水而言,我很难说是对是错,但
是作为曾经的360人,我还是不希望看到360树敌太多,希望它能够跟大家和睦相处,构建一个和谐的互联网生态环境。

抛开外部竞争格局与环境不说,沙水仅从360公司内部来阐述360是如何充满危机感,如何拥抱变化的。在沙水离职的这段时间里,恰逢360与腾讯的“3Q”大战二审,以及360公司内部组织架构调整。这时候外部开始有了很多猜想和解读。其实,对360而言,一直保持的就是扁平化的组织结构,并且一直保留有小团队作战的风格,一个产品(兼UI)、一个技术、一个运营就可以开始独立操刀一个产品。

因为移动互联网时代,你不知道下一个引爆点住哪里,也不清楚哪一个产品真的会火,于是在360内部有很多这样的产品团队,据去年入职培训时候的数据是,360内部有100多个产品线,分布在各个部门。这时候,难免很多产品存在重叠与资源浪费,当移动互联网的竞争格局日益白热化的时候,面对竞争对手的合众连横,360肯定是能感受到外部环境的变化的。于是,进行组织架构调整,以不断适应外部变化,保证在以后的竞争中立于不败之地就是调整的核心目标了。

正如大家所看到的,360组织架构的调整主要还是坚持核心安全为主导,理清了无线安全业务线与PC安全业务线的关系,且由老周亲自管理无线安全业务线。这也足够说明了移动互联网对于360的重要性。

在360,变化很最常见的。“拥抱变化”更是以横幅的形式挂在了墙上的
就沙水个人而言,经历了从安全桌面到手机助手变动,这一年多时间里经历过了5个直接领导的变动,工作位也换了4个不同的地方。无论是大的变化,还是小的变
化;无论是真的重要的,还是我们认为不值得变的,360就是这么一直在变化,对外是,对内也是,就是这么一直在折腾着的公司。

4、团队作战,相互补位

沙水以为,360拥有最厉害的两大杀手锏。一是企业文化,让员工对公司理念充满认同感,并且这种认同不是由于所谓的洗脑,而是身边一个个同事以身作则的表率作用而产生的;二是团队协作精神,Leader与员工一起同甘同苦挑灯夜战,团队作战,相互补位,任劳任怨,绝不推脱。由此产生的结果是,大家做一件事情的时候,在目标上是达成了共识能够认同的,在执行上是不打折扣努力去实现的。

在手机助手,沙水曾经10点多下班刚回到家又被领导叫到公司加班,而且整个团队都被叫回来了,只为了确定一个文案,一想就是到凌晨三四点。也曾经因为要排查掉手机助手里的垃圾游戏,我们连续两个月都没有休息,每天工作到凌晨十一二点。那时候真的很苦很累,已经到了晚上睡觉就头疼失眠的地步,真的很想不干了。为了所谓的用户体验,我们真的是把绳命都快搭进去了。现在想想,我们当时所做的那些,对沙水个人来说真的不重要,但是站在公司的角度,只有你这样做了,才能保证用户的游戏体验,才能减少用户的投诉,才能在与其他游戏平台的竞争中赢得用户口碑。只有这么想想后,沙水才觉得自己其实是在做一件很有意义的事情,也算聊以自慰了。


时,沙水还要游戏的负责活动策划、页面设计、开发推进与活动推广等工作,这里面涉及的部门、人员、事情就多了去了。而我除了策划和推广啥都不会,所以免不
了要麻烦其他的同事,包括技术问题请教,页面设计需求沟通与修改,与直线思维的攻城狮PK排期等,一遇到活动就得整日就是四处奔跑,真的是一路小跑去协
调。当一切准备完毕后,还要求这个求那个制作活动的宣传图,是各种推广渠道各种尺寸的图片,一般都是10几个的样子,但是我们的美女设计师总是很有耐心,
在我的指导下不仅要不厌其烦的修改,还要完成那么多的数量。另外就是跨部门的去协调资源位,对于大型点的活动,我们也会去协调导航、搜索包括安全桌面的资
源,一般来说都能够搞定。

就是这样,我们一边累着干活,一边还要协调各各部门的各个资源,虽然其中会有很有曲折,也难免有很多抱怨,但是最
终大家都是会积极配合来共同把一件事情给办成的。沙水不知道,在其他的巨头互联网公司里,这种跨部门的人员协作与资源申请是否容易,但是在360,大部分
时候还是响应很快的。这种团队协作的精神大大提高了执行的效率,有利于抢占先机。

以上四点可能是沙水在360感触最深的地方。还有其他一些
听起来冠冕堂皇高大上的就不赘述了。360是一个让人又爱又恨的公司,对于用户而言,爱是远远大于恨的;对于其他互联网巨头公司而言肯定是恨大于爱了。但
是,公司层面的爱恨纠葛交给公司去处理,对于用户层面的产品体验来说,一切还得回归到产品本身来说话。

总而言之,沙水在360的这一年多时间真的收获和学习到了很多很多。在这里,因为用户体验,你也许要牺牲掉自己很多的时间,干很多又苦又累的活,甚至会忍不住背后破口大骂还时时嚷着准备要离职。但是在这里,累的不是你一个,领导比你更累,而且领导还没有架子,自己也能感受到成就感,如此想想你又会觉得很安慰,是不是有点精神分裂的感觉?不管外面一些人怎么说360的负面,作为一个曾经的360人,我知道它对于用户体验是真心实意地在追求,对于产品是精雕细琢地在打磨,而对于那些互联网巨头也是令人头疼的继续捣蛋。

360就是这样,感谢360!

转发自: http://www.chuangxinpai.com/article/1752.html#0-tsina-1-48622-397232819ff9a47a7b7e80a40613cfe1

And a touch from a celebrity’s fashion is very acceptable
gay porn How to Wear Fashion Scarves

I have way too much lunch money and love punches
cartoon pornNever be over or under dressed for any occasion again
black porn
发表在 好文推荐 | 标签为 | 评论关闭

PHP–会话–session-自定义

<?php
class FileSessionHandler
{
    private $savePath;

    function open($savePath, $sessionName)
    {
        $this->savePath = $savePath;
        if (!is_dir($this->savePath)) {
            mkdir($this->savePath, 0777);
        }

        return true;
    }

    function close()
    {
        return true;
    }

    function read($id)
    {
        return (string)@file_get_contents("$this->savePath/sess_$id");
    }

    function write($id, $data)
    {
        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;
    }

    function destroy($id)
    {
        $file = "$this->savePath/sess_$id";
        if (file_exists($file)) {
            unlink($file);
        }

        return true;
    }

    function gc($maxlifetime)
    {
        foreach (glob("$this->savePath/sess_*") as $file) {
            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                unlink($file);
            }
        }

        return true;
    }
}

$handler = new FileSessionHandler();
session_set_save_handler(
    array($handler, 'open'),
    array($handler, 'close'),
    array($handler, 'read'),
    array($handler, 'write'),
    array($handler, 'destroy'),
    array($handler, 'gc')
    );

// the following prevents unexpected effects when using objects as save handlers
register_shutdown_function('session_write_close');

session_start();
// proceed to set and retrieve values by key from $_SESSION 

which will be available after two weeks
porno The Proper Wedding Etiquette For Tipping Page 1 of 2

While we’d love to see products launch without a hitch
pornoFashion For Your Strawberry Shape
youjizz
发表在 网站开发 | 评论关闭

php下的session阻塞

默认情况下:sessin会阻塞。比如:1:index.phpsession_start();sleep(10);echo ” page OK<br/><br/>”;先执行这个。2:show.phpsession_start();echo ” page OK<br/><br/>”;然后再执行2.这个页面会在1执行完之后才执行。session默认以文件保存,当一个用户访问 session_start页面后

Rather than pay a gym membership
miranda lambert weight loss 6 Amazing Movie Crossovers Hollywood Should Be Making Now

a certain way
cartoon pornVampire Weekend Gets Sued By
free gay porn
发表在 网站开发 | 评论关闭

欢迎来到老张的博客–博客声明

本博客属个人所有,不涉及商业目的。
本博客所有原创作品,包括文字、资料、图片、网页格式,转载时请标注作者与来源。
非经允许,不得用于赢利目的。本博客受中国知识产权、互联网法规和知识共享条例保护和保障,任何人不得进行旨在破坏或牟取私利的行为。本博客声明以简体中文版为准,不对其他语言版本负责。

And it really stays sort of within those
how to lose weight fast Brian Atwood shoes for Eva Longoria

a permanent head injury
pornoPre Folded Pocket Squares and Flower Lapel Pins Ranked as Popular Accessories
large porn tube
发表在 个人感悟 | 评论关闭

php-完全实现会话

代码1

<br />
&lt;?php</p>
<p>$MY_SESSION = array();<br />
class RedisSessionHandler<br />
{<br />
	private $session_id = '';</p>
<p>	function __construct() {<br />
		$session_id = $_COOKIE['mysession'];<br />
		if ( $session_id ){<br />
			$GLOBALS['MY_SESSION'] = unserialize(file_get_contents('e:\source\test\session\session_file\new_'.$session_id));<br />
		}else{<br />
			$session_id = uniqid('session_',true);<br />
			setcookie('mysession', $session_id);<br />
			file_put_contents('e:\source\test\session\session_file\new_'.$session_id,'');<br />
		}<br />
		$this-&gt;session_id = $session_id;<br />
   	}</p>
<p>    function __destruct() {<br />
    	file_put_contents('e:\source\test\session\session_file\new_'.$this-&gt;session_id,serialize($GLOBALS['MY_SESSION']));<br />
    }<br />
}</p>
<p>$a = new RedisSessionHandler();</p>
<p>//$MY_SESSION['demo1-4'] = 'ddd';</p>
<p>var_dump($MY_SESSION);<br />

代码2

<br />
&lt;?php</p>
<p>$MY_SESSION = array();</p>
<p>function mysession_start()<br />
{<br />
	$session_id = $_COOKIE['mysession'];<br />
	if ( $session_id ){<br />
		$GLOBALS['MY_SESSION'] = unserialize(file_get_contents('e:\source\test\session\session_file\new_'.$session_id));<br />
	}else{<br />
		$session_id = uniqid('session_',true);<br />
		setcookie('mysession', $session_id);<br />
		file_put_contents('e:\source\test\session\session_file\new_'.$session_id,'');<br />
	}<br />
	register_shutdown_function('mysession_end');<br />
}</p>
<p>function mysession_end()<br />
{<br />
	$session_id = $_COOKIE['mysession'];<br />
	file_put_contents('e:\source\test\session\session_file\new_'.$session_id,serialize($GLOBALS['MY_SESSION']));<br />
}</p>
<p>mysession_start();</p>
<p>/*<br />
$MY_SESSION['demo1-5'] = 'fff';<br />
*/</p>
<p>var_dump($MY_SESSION);<br />

Lakes Erie and Ontario and the Canadian province of and learned
christina aguilera weight loss Christmas Gift Ideas for Girls Age 8

the whole planet Earth is
quick weight lossHow to Get Kim Kardashian
hd porn
发表在 网站开发 | 6 条评论

PHP中的部署工具–利用phing部署项目

Phing是一个PHP项目构建系统或建立一个基于工具的Apache Ant.

你可以做任何它,你可以做一个传统的构建系统,如GNU make工具,它的使用简单的XML构建文件和可扩展PHP的“任务”类使其易于使用和高度灵活的构建框架.

其特点包括运行PHPUnit的和SimpleTest的单元测试(包括测试结果和覆盖报告),文件转换(例如令牌替换,XSLT转换,Smarty的模板转换),文件系统操作,互动构建支持,SQL执行,CVS/SVN/GIT操作工具,用于创建PEAR包,文档生成(DocBlox,phpDocumentor)等

如果你发现自己编写自定义脚本来处理打包部署,或者您的应用程序的测试,那么我们建议在看Phing.Phing自带打包带大量即装即用的操作模块(任务),以及一个易于使用的面向对象模型来扩展或添加自己的自定义任务.

Phing提供以下功能

  1. 简单的XML构建文件
  2. 丰富提供任务
  3. 通过PHP类易于扩展
  4. 平台无关:工作在UNIX,Windows,Mac OSX版
  5. 无需外部依赖
  6. 专为PHP5

安装

安装Phing的首选方法是通过PEAR以及Phing PEAR通道。 你可以通过添加pear.phing.info通道到你的PEAR环境,然后安装Phing使用phing通道别名和phing包名安装Phing:

pear channel-discover pear.phing.info
pear install [--alldeps] phing/phing

安装完成之后,为了调用方便可配置环境变量,使其可在命令行直接调用。

phing调用类似如下:

 phing [target [target2 [target3] ...]]

通过xml格式配置,类似如下:

<?xml version="1.0" encoding="UTF-8"?>

<project name="FooBar" default="dist">

    <!-- ============================================  -->
    <!-- Target: prepare                               -->
    <!-- ============================================  -->
    <target name="prepare">
        <echo msg="Making directory ./build" />
        <mkdir dir="./build" />
    </target>

    <!-- ============================================  -->
    <!-- Target: build                                 -->
    <!-- ============================================  -->
    <target name="build" depends="prepare">
        <echo msg="Copying files to build directory..." />

        <echo msg="Copying ./about.php to ./build directory..." />
        <copy file="./about.php" tofile="./build/about.php" />

        <echo msg="Copying ./browsers.php to ./build directory..." />
        <copy file="./browsers.php" tofile="./build/browsers.php" />

        <echo msg="Copying ./contact.php to ./build directory..." />
        <copy file="./contact.php" tofile="./build/contact.php" />
    </target>

    <!-- ============================================  -->
    <!-- (DEFAULT)  Target: dist                       --> 
    <!-- ============================================  -->
    <target name="dist" depends="build">
        <echo msg="Creating archive..." />

        <tar destfile="./build/build.tar.gz" compression="gzip">
            <fileset dir="./build">
                <include name="*" />
            </fileset>
        </tar>

        <echo msg="Files copied and compressed in build directory OK!" />
    </target>
</project>

当然,phing也提供自定义的任务,可以自己用php来写任务.类似如下:

<br />
require_once &quot;phing/Task.php&quot;;<br />
class MyEchoTask extends Task {<br />
    /**<br />
     * The message passed in the buildfile.<br />
     */<br />
    private $message = null;<br />
    /**<br />
     * The setter for the attribute &quot;message&quot;<br />
     */<br />
    public function setMessage($str) {<br />
        $this-&gt;message = $str;<br />
    }<br />
    /**<br />
     * The init method: Do init steps.<br />
     */<br />
    public function init() {<br />
      // nothing to do here<br />
    }<br />
    /**<br />
     * The main entry point method.<br />
     */<br />
    public function main() {<br />
      print($this-&gt;message);<br />
    }<br />
}<br />
        

写完后,可如下调用

<?xml version="1.0" ?>

<project name="test" basedir="." default="test.myecho">
    <taskdef name="myecho" classname="phing.tasks.my.MyEchoTask" />

    <target name="test.myecho">
      <myecho message="Hello World" />
    </target>
</project>

详细内容:可参见:http://www.phing.info/docs/stable/hlhtml/index.html#d5e811

ideas match tank top designs
cartoon porn Fashion Tips for Women Online

s spring 2013 development teach
quick weight lossDesigner Sue Wong unveils her Fall 2013 Great Gatsby Collection
anime porn
发表在 网站架构 | 标签为 | 评论关闭