所在分类: php小记
snoopy抓取wordpress博客时 返回的response是HTTP/1.0 301 Moved Permanently ,但正常用浏览器打开后查看头信息是HTTP/1.1 200 OK,原因是snoopy在抓取时如果没有端口号,会使用默认的端口80,遇到有301(永久重定向)或302(暂时重定向)跳转的页面就会出问题,本来能跳转的,加上80端口之后就不能跳转了。
在一年多以前,这个问题就已经被fixed了。
大概的解决方案就是:
在snoopy的大概156行,发起http请求的时候,加上这个判断:
if( $this->port == 80 ) $t .......
所在分类: php小记
因为部门网站较多,最近导师要求做一个web监视器,每小时定时查询每个网站,并根据网站的response做出相应的判断,如果有一个网站出错了,则发送告警邮件。
由于是内部使用的小工具,所以我的实现思路是这样的。
1、初次访问web监视器时,要求用户输入口令,口令符合,则启动web监视器。
2、web监视器使用while(true){}死循环,每次循环之后sleep(3600)中断一个小时。
3、使用snoopy蜘蛛爬行网站,根据返回的http头的状态码进行判断网站是否正常,正常的话就返回正常,错误则显示相应的错误信息。
4、使用163的smtp服务来发送邮件。
5、应该具备可配置性。将要爬行的网 .......
所在分类: php小记
php框架的核心之一就是路由策略。任何好看的php框架url都是通过路由策略或者rewrite来实现的。
为什么要写一个php框架?
成立一个框架一般都是为了一些同类的问题提供一系列的解决方案,而不是为了简单实现某个功能。
路由是php框架的基础之一,那怎么实现路由的分发呢?
这是一个简单的实现思路:
首先在项目文件夹中建立 index.php 、C(文件夹,控制器),M(文件夹,模型),V(文件夹,视图),至于Commom、Conf等文件夹,则是按需加载了。
入口文件:index.php
简单几句,就可以实现路由的分发,至于对参数的验证,可以做一个文件封装即可,一般不在入口文件中实现。 .......
所在分类: php小记
一、why 为什么需要注意安全问题
(1)互联网应用日益丰富,如果应用涉及利益,则很容易成为黑客的目标,比如说游戏装备,虚拟货币,网上银行等很容易引起黑客的注意。
(2)数据量庞大,互联网应用之间的关系密切,数据存在很大的应用价值,或者数据有用户的敏感信息,比如说2011年的csdn用户数据泄漏事件,连带造成renren 网,多玩等用户的帐号密码泄漏。
(3)如果不注意安全问题,则服务器容易编程黑客操纵的傀儡机(或肉鸡),成为黑客进行攻击其他渠道的工具,比如说DDOS攻击
(4)如果不注意安全问题,则容易被黑客留下后门,造成不可预计的危险,如商业 秘密泄漏,主页篡改等。
&n .......
所在分类: php小记
其实,微博应用并不难,关键是点子。
开发微博小游戏《超级游戏搭错线》,两个微博开放平台:腾讯微博+新浪微博,页面设计、编码实现加起来就用了三天的时间。
在这个游戏里添加了十分人性化的功能。
(1)添加了腾讯微博@好友的提示功能。但是目前这个api好像已经关闭。就算用get方式直接请求 http://open.t.qq.com/api/friends/match_nick_tips 也不会得到类似
{“data”:null,”errcode”:-3180,”msg”:”check sign error”,”ret”:3}
的错误提示,也没有看到api权限不足或者其他原因的提示,甚是奇怪,只能用关 .......
所在分类: php小记
前几天做搭错线游戏的时候,前端往后台传数据的时候需要讲数组转化为json,然后post到后台。
这里我使用了jquery的json插件,直接使用$.toJSON转化,后台直接用php的json_decode解析。在windows平台做开发,测试没有发现任何异样。php版本:5.2.5
后来部署到linux平台的时候,问题来了。
使用json_decode()解析前台post过来的数据的时候一直都返回null,于是尝试以下手段。
(1)检查一下编码,在5.3以后可以调用 json_last_error 看解析json遇到的最后一个错误,这里返回错误代码整型4,就是4 = JSON_ERROR_S .......
所在分类: php小记
这几天突发奇想,想做一个应用关于合并搞笑音频的。但是php毕竟是web脚本文件,在处理这种二进制音频的能力上有所欠缺,在国内的网站上并没有找到完整的解决方案,但在国外一个牛B人物的博客上发现相关的解决方案。
这是一个MP3的类,下面我会讲述如何使用这个类。
<?php
class mp3
{
var $str;
var $time;
var $frames;
function mp3($path=”")
{
if($path!=”")
{
$this->str = file_get_contents($path);
}
}
function setSt .......
所在分类: php小记
http长连接技术(commet)
这里有两种模型:一个是基于iframe,把长连接放在页面的一个隐藏iframe中。另外一个是使用ajax的长轮询(long-polling)方式,在一个老外的博客里找到相关的描述。
How to implement COMET with PHP
Comet is a programming technique that enables web servers to send data to the client without having any need for the client to request it. This techniq .......
所在分类: php小记
做毕设的时候将一堆数据转化而来~先留着!
没有添加港澳台部分,需要的童鞋可以自行添加。
这里有一个excel版本和一个sql版本,其中excel版本不包含区域划分。数据大部分与新浪微博api中地理信息平台接口中使用到的城市代码与城市名的对应列表 一致。对新浪app开发者可能有些帮助,特别是数据挖掘部分。 http://open.weibo.com/wiki/Location/citycode
尊重他人劳动成果,转载请注明链接:IT P民–至诚网络人 中国省市区域代号与区域划分mysql版本
点击下载:全国各省市区域代号excel表 全国各省市地区划分与代号mysql版本 sql语句(包含区域划 .......
所在分类: php小记
一·ThinkPHP Insert 添加数据
ThinkPHP 内置的 add 方法用于向数据表添加数据,相当于 SQL 中的 INSERT INTO 动作。
添加数据 add 方法是 CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create 的实现,ThinkPHP 支持以普通数组方式和面向对象方式将数据写入数据表。
现在以《PHP MySQL 数据库教程》中操作 user 表数据的例子(具体参见:MySQL Insert into 添加数据)为例,来演示如何在 ThinkPHP 中实现对数据表的数据添加操作。
例子:
在 IndexAct .......

iam3y.com