Posts Tagged ‘PHP’
手机短信天气预报自动发送程序
Posted in Linux, code on 2月 28th, 2010 by 飘(piao2010) – 23 Comments今天闲来无聊想起网上流传已久的飞信API接口,加上MM说想要手机天气预报,平时又没空拿她手机安装软件,所以就有了写个手机短信天气预报程序的想法。
程序大致分成两个模块,(一)PHP程序采集中国气象网站的数据用正则表达式进行提取关键信息,这个以前的文章已经写过不再重复叙述。然后利用飞信的API接口向MM的手机发送天气预报数据。
(二)写一个shell脚本,实现访问PHP程序。考虑到网络偶尔出现故障,加入了sleep和while循环。
最后在crontab里面添加每天定时执行shell脚本即可。
部分关键代码如下: read more »
什么是运维工程师?
Posted in 生活琐碎 on 1月 27th, 2010 by 飘(piao2010) – 3 Comments3月中旬就要去实习了,虽然签约的是运维工程师,不过到底什么是运维工程师呢?网上搜索出来的资料也没有明确的定义。不过发现一篇文章写的是对运维工程师的理解,觉得挺好的,转载过来。
对于网站运维,感觉大家还是比较迷惘与不解,确实,这是一个新兴岗位;今天闲来无事,在此结合自已以往的一些经历,与大家先共同探讨一下“什么是门户网站运维”?以下是自已的一些经验和感受请大家斧正,希望和大家一起探讨,共同进步
一、什么是门户网站运维?
首先明确一下,全文所讲的”运维“是指:门户网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范、知名度、服务器量级、pv量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于1000台,pv每天至少上千万(至少国内排名前20),如sina、alibaba、sohu、baidu、网易等 read more »
php配置session相关知识
Posted in 安全相关 on 9月 21st, 2009 by 飘(piao2010) – 2 Commentsphp session有一个GC功能,就是Garbage Collector。这个GC启动的时候,会清除那些已经“超时”的session。它的工作原理:
1.用户访问并登陆网站,这时候后台会调用session_start来尝试生成一个会话(如果已经有会话,则相当于一次有效会话请求)
2.对于这样的每一次有效会话请求(Request),apache的php模块会根据session相关的全局变量gc_probability/gc_divisor =>计算出启动GC的概率,并由此概率来决定在这次请求中是否应该启动GC。举例来说, read more »
PHPCMS开发文档里看到PHP编码规范
Posted in code on 9月 8th, 2009 by 飘(piao2010) – Be the first to comment无意间发现这篇文章觉得比较有用,原作者不明。
注:这是从PHPCMS开发文档里看到编码规范,虽名为PHPCMS的开发规范,但我觉得所有的PHP编程都该如此。写了那么多PHP,很多编码对照这规范都感觉欠缺很多,今后一定要对照纠正。
Phpcms 编码规范
1. 引言…. 2
2. 适用范围…. 2
3. 标准化的重要性和好处…. 3
4. PHP编码规范与原则…. 3
4.1. 代码标记… 3
4.2. 注释… 3
4.3. 书写规则… 4
4.3.1. 缩进… 4
4.3.2. 大括号{}、if和switch. 4
4.3.3. 运算符、小括号、空格、关键词和函数… 5 read more »
PHP实现获取客户端IP地址以及IP地址的伪造
Posted in code, 安全相关 on 8月 17th, 2009 by 飘(piao2010) – 2 Comments以下是目前网上比较常用的获取客户端IP地址的方法
<?php function get_ip_address() { if (isset($_SERVER)) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else { $ip = $_SERVER['REMOTE_ADDR']; } } else { //iis不支持getenv if (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } else { $ip = getenv('REMOTE_ADDR'); } } return $ip; } echo get_ip_address(); ?> |
关于file_get_contents函数超时的解决方法
Posted in code on 8月 11th, 2009 by 飘(piao2010) – Be the first to comment今天在测试天气预报系统的时候发现一个问题,就是在网络状况比较差的情况下file_get_contents函数经常读取远程数据失败。经过Google和自己的一番测试,解决方案如下:
<?php //飘零的代码 http://piao2010.com /*设置超时配合失败之后尝试多次读取,效果比原先好很多*/ $opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>1 //设置超时1s ) ); $context = stream_context_create($opts); $cnt=1; //最多尝试10次读取 while(($contents = @file_get_contents("$url",false,$context)) === false && $cnt <= 10 ) $cnt++; ?> |
关于php的magic_quotes_gpc
Posted in code, 安全相关 on 8月 8th, 2009 by 飘(piao2010) – 2 Comments今天暂时没有任务,偷偷关注一下安全方面的东东。上午回味了一下安全天使的两篇经典文章
http://www.4ngel.net/article/36.htm
http://www.4ngel.net/article/30.htm
总结出两点:
1。无论如何(即使magic_quotes_gpc=On还是可以采用char()等函数进行注射)数字型变量(SQL语句中没有用引号包围的变量)一定要进行过滤,常用intval()函数处理, read more »