分类2015年下的文章

Jerry Bendy 发布于 12月20, 2015

仅用一个DIV和CSS绘制中国国旗

看了国外一个网站使用一个DIV绘制图形的例子,想到也试着用一个DIV画一面中国国旗吧,于是便动手试了下。当然因为文字投影没办法旋转的原因,四颗小星星不能做到指向中心的大星星,还是有些BUG的。以下是实现效果: 下面是使用的HTML代码,外层的DIV仅仅是后面的背景,请无视。<divid="flag"><div></div></div>CSS代码:#flag{width:600px;height:400px;background:#898989;margin:0auto;position:relative;}#flagdiv{position:absolut...

阅读全文 »

Jerry Bendy 发布于 12月02, 2015

【分享】PHP中的并发

今天看到一篇讲PHP并发的文章,感觉不错,于是便Copy了下来。原文如下:周末去北京面了两个公司,认识了几位技术牛人,面试中聊了很多,感觉收获颇丰。认识到了自己的不足之处,也坚定了自己对计算机学习的信心。本文是对其中一道面试题的总结。面试中有一个问题没有很好的回答出来,题目为:并发3个http请求,只要其中一个请求有结果,就返回,并中断其他两个。当时考虑的内容有些偏离题目原意,一直在考虑如何中断http请求,大概是在client->recv()之前去判断结果是否已经产生,所以回答的是用socket去发送一个http请求,把socket加入libevent循环监听,在callback中判断是否已经得到结果,如...

阅读全文 »

Jerry Bendy 发布于 11月28, 2015

mysqli使用localhost问题 Warning: mysqli::mysqli(): (HY000/2002): No such file or directory

今天在使用PHP的CLI方式访问mysql数据库时出现了一个Nosuchfileordirectory的错误,查找资料并在最终解决后记录一下。这个问题应该也会存在于非CLI方式访问,简单的代码是这样的:<?php$mysqli=newmysqli('localhost','root','root','test');如果上面的连接地址是localhost就会报此错误,改成127.0.0.1后正常。当主机填写为localhost时MySQL会采用unixdomainsocket连接,当主机填写为127.0.0.1时MySQL会采用TCP/IP的方式连接。使用Unixsocket的连接比TCP/IP的连接更加快速...

阅读全文 »

Jerry Bendy 发布于 09月10, 2015

MAMP PRO安装PHP扩展的方法

这几天因为需要使用MAC做PHP开发,安装了一个MAMPPRO的试用版,整体感觉非常好用,还可以自由选择PHP版本、Apache扩展、很方便的创建网站并自动修改系统hosts文件等。MAMP和MAMPPRO是两个独立软件,MAMP可以单独运行,支持简单的操作如PHP版本切换、Apache/Nginx切换、启动/停止服务等。MAMPPRO不能独立运行,它需要依赖MAMP软件,其实MAMPPRO就是MAMP的一个功能强大的控制面板,并提供了一些MAMP本身不支持的功能(如修改hosts、DDNS、方便的修改PHP运行方式以及Apache模块、方便的添加和管理虚拟网站等),售价不到400元,你值得拥有~因为我的项目很多...

阅读全文 »

Jerry Bendy 发布于 09月02, 2015

断网时本地连接MySQL速度慢-MySQL的DNS反向解析

今天由于意外情况公司断网,测试程序时跑在另一台虚拟机里面的mysql服务发现连接特别慢(在10秒左右),多方查找资料最终定位问题在MySQL的DNS反向解析上面。MySQL数据库收到一个网络连接后,首先拿到对方的IP地址,然后对这个IP地址进行反向DNS解析从而得到这个IP地址对应的主机名。用主机名在权限系统里面进行权限判断。反向DNS解析是耗费时间的,有可能让用户感觉起来很慢。甚至有的时候,反向解析出来的主机名并没有指向这个IP地址,这时候就无法连接成功了。想要临时关闭DNS反向解析也比较简单,可以有下面两种方法:一、命令行方式执行/usr/local/mysql/bin/mysqld_safe--skip-n...

阅读全文 »

Jerry Bendy 发布于 07月21, 2015

迁移服务器遇到的蛋疼问题:Nginx PHP “No input file specified”

昨天因为服务器到期把网站迁移到另一台服务器,使用的LNMP架构,网站各部分迁移完成后发现了一个蛋疼的问题:很多网页打开都提示”Noinputfilespecified”,甚至直接404,而且时好时坏。去网上搜了下资料,大概意思如下:任何对.php文件的请求,都简单地交给php-cgi去处理,但没有验证该php文件是否存在。PHP文件不存在,没办法返回普通的404错误,它返回一个404,并带上一句”Noinputfilespecified”另外,还可能跟路径或者权限有关系,或者SCRIPT_FILENAME变量没有被正确的设置(这在nginx是最常见的原因)。因为Nginx的PATHINFO设置是直接复制的之前服务...

阅读全文 »

Jerry Bendy 发布于 07月13, 2015

使用jQuery/JS操作浏览器Cookie

以下代码演示如何使用jQuery操作浏览器Cookie(说是用jQuery,其实没用到jQuery的任何函数,所以只需要把外层封装的jQuery扩展函数去掉就可以应用在任何JavaScript环境中。/******************************扩展一个jQuery对象用于操作Cookie******************************/jQuery.extend({/***获取指定Cookie的内容*@paramsNameCookie的名称*@returns{string}*/getCookie:function(sName){varaCookie=document.cookie.s...

阅读全文 »

Jerry Bendy 发布于 06月05, 2015

使用JavaScript检测浏览器支持哪种CSS动画完成事件

以前或许我们在做前端效果时都是在使用JS来,如JQuery的animate,而如今在前端效果中,CSS3占据越来越重要的作用,如何检测一个CSS3的动画是否结束并在结束后执行下一个动画呢?用jQuery的时候可能是这样:$('.element').animate({left:'100px'},function(){alert('动画执行结束');});下面以一个简单的例子演示下使用CSS3的动画如何响应这种操作:/*一个简单的CSS3动画(这里不再写-webkit-之类的前缀了*/@keyframesfade{from{left:0;}to{left:200px;}}.animate-fade{animation...

阅读全文 »

Jerry Bendy 发布于 05月19, 2015

25个最常用的iptables策略

1、清空存在的策略当你开始创建新的策略,你可能想清除所有的默认策略,和存在的策略,可以这么做:iptables-F或者iptables–flush2、设置默认策略默认链策略是ACCEPT,改变所有的链策略为DROP:iptables-PINPUTDROPiptables-PFORWARDDROPiptables-POUTPUTDROP3、阻止一个指定的ipBLOCK_THIS_IP=“x.x.x.x"iptables-AINPUT-s”$BLOCK_THIS_IP“-jDROPiptables-AINPUT-ieth0-s"$BLOCK_THIS_IP"-jDROPiptables-AINPUT-ieth0-pt...

阅读全文 »

Jerry Bendy 发布于 04月06, 2015

后台任务和PHP-Resque的使用(五) 创建任务

到目前为止已经让Worker运行了,我们需要创建并添加任务。这一节主要了解什么是任务(Job),以及如何使用任务。简单的说,任务就是传递给Worker要执行的内容。我们需要把Job依次添加到Queue来执行。要把任务添加到队列,程序必须要包含php-resque库以及Redis。使用require_once'/path/to/php-resque/lib/Resque.php';包含php-resque的库文件,它会自动连接到Redis服务器,如果你的Redis服务器不是默认的localhost:6379,你需要使用Resque::setBackent('192.168.1.56:3680...

阅读全文 »