基于 HTML5 的 EventSource 实时推送实现
esult").innerHTML=event.data + " "; }; }else{ document.getElementById("result").innerHTML="抱歉,您的浏览器不支持 server-sent 事件 ..."; } </script>本文示例后端使用文件保存聊天记录,读取文件内容的更新返回给客户端,通过保持长连接和 chunked 传输实现实时通信。经过长时间观察测...
谈谈 PHP 协程的任务调度
导致阅读理解起来非常费力,而任务调度是我唯一能想到的 yield 的作用,方便管理垃圾代码。其实仔细一想,yield 能做的所有的事情,不使用 yield 照样可以相同效果的完成。学面向对象是为什么,支持面向对象是为什么,就是为了方便管理复杂的代码控制流程。像上面的任务调度,使用观察者模式一样可以同等效果的完成,也许稍微麻烦一点点,但性能应该比 yield 要好。...
PHP7 返回值类型与声明不符报错
PHP7 的函数和方法支持声明返回值类型,出于好奇,试了下如果在运行时返回值类型与声明不符会怎么样?<?php function test() : array{ return 'lmlphp'; } test(); 如下致命错误:PHP Fatal error: Uncaught TypeError: Return value of test() must be of the type array, ...
前端技术之CSS实现图片垂直居中
一个网站的价值越高时,需求也就越多,仅仅通过居中图片不一定给人好的视觉体验。比如 QQ 空间就专门对图片进行了显示优化处理,如果图片中有人脸的话,在缩略图中会突出人脸部分,这种图像识别技术需要服务端的支持。 下面附上实现图片居中的部分代码: <style> .imgTab{ border-collapse: collapse; border-spacing: 0; text-align: center...
MacOS自带PHPGD库问题
是有些不习惯,不过苹果的产品比较精致,也另有一番体验。在 Mac 上开发,有遇到过一些问题,这里记录最近出现的一次 GD 库异常问题。 苹果系统的终端跟 Linux 非常相似,不过也有一些命令默认没有支持,比如 tree 命令。Mac OS 系统自带了 PHP 解释器和 Python 等。安装好了 Nginx 后,运行 phpinfo(); 显示是有 GD库的,但程序在运行时,总会出现 call to...
MySQL 非法混合字符集等号操作异常
上找了很多资料,有人说使用 binary() 函数来解决报错,有人说修改数据库编码,让数据库的编码和 MySQL 的设置都保持一致。个人认为统一编码是不太好的做法,至少是不合适的,比如数据库个别表为了支持 emoji,使用的是 utf8mb4 编码,你总不能把所有的表都改成 utf8mb4 编码吧,这也太操蛋了。这些方法其实都是解决编码不一致,并且用户的行为是不能确定的,比如在自己的站内编码肯定是一致...
解决configure: error: Cannot find OpenSSL's <evp.h>
PHP 的后期新版本由于某些版权问题,不再默认支持 mysql 扩展,官方推荐使用 mysqli 和 pdo_mysql。在使用源代码安装 PHP 时,默认是不会安装 pdo_mysql 扩展的,这样动态编译 mysqlnd、pdo_mysql 扩展会报一些奇怪的错误,如下:configure: error: Cannot find OpenSSL's <evp.h> 尝试了很多方法,依然解决不了这个...
每天早出晚归被命运束缚的人
中国移动也是个垃圾缺德公司,也只有在特色社会主义才能存在,尼玛,换个套餐把我上个月剩余的 500 多兆流量全作废啦。总理特别的要帮助出租车行业老司机。可老司机们总不支持手机信用卡支付,车又破,服务态度又差,社会在进步,该淘汰的还是得淘汰,你要帮助弱势群体,中国有一半农民,你帮的了吗?好的国家政策应该建立良性的社会制度,为什么做金融的永远都是特权阶级,尼玛,做个网站还得备案。一个在社会底层的人,在当今社...
PHP5.3新特性static与self区别
细参考:http://php.net/manual/en/language.oop5.late-static-bindings.php。 PHP 5.3 以后除了后期绑定功能,在静态属性和方法的访问上支持使用变量加上双冒号操作符去访问静态成员。如下代码示例: <?php class Foo { public static function aStaticMethod() { // ... } } Fo...
GITHUB之GIT BASH使用教程
BASH 管理 GITHUB 中的代码库。Git 是基于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS,Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的分支、合并、跟踪的能力。申请 GITHUB 账号关于 ...