Code For Colorful Life
PHP安全最佳实践
翻译自:PHP Security Best Practices
在这一篇博文中将会探讨一些关于PHP安全的最佳实践。
经常更新
如果可能,使用最新发布的稳定版PHP。因为它包含了一些安全的更新和BUG的修复。这能够让PHP应用更加安全,当然性能也会更好。
Read more...
C语言使用JSON,cJSON库的使用
学习了点socket编程,发现通过TCP/UDP进行通信接收到的是连续的字节内容,于是想要传输有结构的数据,就想到了JSON,上网查了下,找到了从cJSON库,这个库简单易用,很不错。
Read more...
使用PHP进行网页数据抓取小结
抓取思路
- 通过CURL请求到页面html,假设URL是正确的,这一步需要注意的地方是服务器重定向问题、服务器检查请求的合法性(通常检查请求头,高级的还会通过动态的cookie值例如淘宝指数)。
- 将请求到的html(所获取的html是未经过js处理的)加载为DOM后,使用DOM库提供的方法从网页获取数据,同时也可以结合DOMXPath(获取网页数据XPath的路径可以使用chrome的控制台,在标签上右击鼠标,选择copy xpath,但注意这个xpath可能与你实际想要的有时会不同,注意禁止掉浏览器js运行)。另外一种方法就是使用php-simple-html-dom,这个库提供面向对象的方法像jquery那样从网页获取数据。
Read more...
Linux线程实现
学习自:linux进程与线程
进程
进程是程序运行的实体,并且占有一定的系统资源。
线程
Linux的进程,线程实现是在核外进行的,核内提供的是创建进程的接口
do_fork()
。内核提供了 三个系统调用__clone()
和fork()
以及vfort()
,最终都用不同的参数调用do_fork()
核内API。do_fork()
提供了很多参数,包括CLONE_VM
(共享内存空间)、CLONE_FS
(共享文件系统信息)、CLONE_FILES
(共享文件描述符表)、CLONE_SIGHAND
(共享信号句柄表)和CLONE_PID
(共享进程ID,仅对核内进程,即0号进程有效)等。
Read more...
linux线程使用读写锁共享全局变量
学习自:Linux线程同步(3): 读写锁(rwlock)和linux网络编程之posix 线程(一):pthread 系列函数 和 简单多线程服务器端程序
读写锁 (rwlock)功能特点简介
读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。这种锁相对于自旋锁而言,能提高并发性,因为在多处理器系统中,它允许同时有多个读者来访问共享资源,最大可能的读者数为实际的逻辑CPU数。写者是排他性的,一个读写锁同时只能有一个写者或多个读者(与CPU数相关),但不能同时既有读者又有写者。
在读写锁保持期间也是抢占失效的。
如果读写锁当前没有读者,也没有写者,那么写者可以立刻获得读写锁,否则它必须自旋在那里,直到没有任何写者或读者。如果读写锁没有写者,那么读者可以立即获得该读写锁,否则读者必须自旋在那里,直到写者释放该读写锁。
Read more...
Session和Cookie小结以及PHP单点登陆的实现
Cookie
由于HTTP协议设计原则是无状态的(我的理解是:http的一个请求状态与下一个或上一个请求状态无关),但是近年来出现了种种需求,其中cookie的作用就是为了解决HTTP协议无状态的缺陷所作出的努力。后来出现的session机制则又是一种在客户端与服务器之间保持状态的解决方案。
Cookie的属性:name(名字);value(值);expire(过期时间);path(路径);domain(域);secure(安全);httponly(仅http)
Read more...