手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:PHP

php能做什么?

 最近好象关于PHP能做什么的话题又出来了。其实说白了,PHP啥都能做,进可攻退可守。有人说,PHP没有多线程,没有这没有那。其实很多人都用PHP实现了这些功能。

先说其他的,上次thinkinlamp聚会的时候,一位台湾朋友就展示了php用来做类似单片机功能的事情。也从侧面证明了,PHP可以搞类似驱动的事情(也只能在linux下面,毕竟linux下面任何东西都是文件)
 
PHP还能做什么?有人用php来自己做Web服务器。或许有人说了,PHP自带不是有PHP -S xxx:81吗?其实是很多人用socket自己实现了webserver。
 
还有人说PHP没有多线程,但PHP在linux下面fork进程后,也能算是当成多线程了吧。
 
只是目前可能是异步在实现上没有那么好吧。
有些项目大家可以看看的,先不谈有人直接用C实现PHP的框架,这没意思,为了提升性能,这些代码我们都看不到了。
不过,有些纯用PHP实现的玩意可以学习一下。这些代码,也不错,思路更不错
1、reactphp
2、aopphp
3、国内的swolephp
这些都是改变思路的程序,如果你要学多进程,其实,你可以看APNSPHP,即能用来当成apns server,你也可以照着学多进程的程序。

BAE的坑

 自从GAE出来后。什么SAE,ACE,BAE什么什么的就全部出来了

ACE我跑几个程序一直有问题,禁用了一些函数,所以我最近在看BAE。速度也不错,也能绑域名。所以它就成了首选。但BAE有一个坑 需要注意
 
如果你的程序的上传没有改过。那么一般都是上传在自己当前的项目目录里,而这个目录由于没有经过svn上传,所以它并不在版本库里,因此,一旦碰到BAE来一个svn迁移的事件。或者更新的时候,极有可能你上传的那些附件会全部丢失。
 
慎重。我就觉得BAE就象一个实验室。我们上传代码到BAE的svn库里。然后svn库会自动 checkout到BAE的平台。于是。。如果他们要迁移了。这些数据应该都是直接delete。然后再checkout一份。
 
建议找个程序,上传到BAE自带的存储中(就象sae的存储)。

Tags: bae

转:2011-10-12 PHP重用curl句柄, CURLOPT_HTTPGET的BUG

转的文章。主要是因为经常会用curl来抓取数据。而且几乎是http_get和http_post混用。但我没遇上这个BUG。不清楚以后会不会遇上,所以我先记录一下,以防万一遇到时候不知道怎么做。

原文地址来自:http://www.ideawu.net/blog/archives/622.html

重用一个CURL句柄时, 发现curl_setopt($ch, CURLOPT_HTTPGET, TRUE) 不起作用. 期望在调用这条语句之后发起请求, 应该发送的是GET, 但看服务器log, 却使用了和前一次请求相同的HTTP方法.

PHP脚本:

<?php $url = 'http://www.ideawu.net/';  $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_exec($ch);  curl_setopt($ch, CURLOPT_HTTPGET, true); // 错误! BUG curl_exec($ch);  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET"); // 正确 curl_exec($ch); ?>

web server log:

124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net 124.127.130.50 "2011-10-12 18:55:09" "POST / HTTP/1.1" 200 3516 "-" www.ideawu.net 124.127.130.50 "2011-10-12 18:55:09" "GET / HTTP/1.1" 200 3516 "-" www.ideawu.net

这个BUG目前还没找到相关的资料.

补充: 不仅仅是CURLOPT_HTTPGET, CURLOPT_POST也有同样的问题. 所以, 结论是: 只有CURLOPT_CUSTOMREQUEST才是正确的方法.

 

Tags: curl

开始要关注性能了

 不得不说,我现在要开始关注性能和稳定性了

最近检查命令行下程序的输出,发现最后退出的LOG大多数是allow memory ....的问题,固然这个命令行下面内存释放有问题有关,但主动释放还是必要的。
毕竟web页在处理完当前请求后,还能够被回收掉一点。php-fpm之类的,还能帮忙,但命令行,它就没有断开过,一直在运行,因此,需要注意一下释放了
 
或者在无法释放的时候,自己设置一个临界点。到临界点的时候自我重启一下也OK。
 
逐步开始研究下

完成两个小工具

 今天完成了两个小工具
1、靖江日报电子版的提取

2、上海交通违章的自动查询
 
靖江日报电子版的难点不多,很快就解决了,基本上也就半小时
上海交通违章的查询就有点麻烦了
1、验证码是bmp的。。
2、验证码的提交经常失败
3、post的时候,模拟数据用的是utf-8,死活不对。。
 
解决这三个问题,剩下的就是一些细节了。
 
---
其实这两天还做了很多小玩意
1、淘宝商品的获取和商品详情的取得
2、上述功能的自动更新和批量处理
3、不足:不知道淘宝客的点击怎么生成(目前我没有isv权限,如果说用接口的,请绕路)
4、测试了阿里妈妈的jssdk,但无法跳转(点击的时候是可以生成s.click的url,但没法入库,很纠结)
5、暂时没有办法生成阿里妈妈后台的:单品自定义链接(用flash的,我一下子不会生成),不过应该很快了。。。