Entries in the ‘code’ Category:

手机短信天气预报自动发送程序

今天闲来无聊想起网上流传已久的飞信API接口,加上MM说想要手机天气预报,平时又没空拿她手机安装软件,所以就有了写个手机短信天气预报程序的想法。
程序大致分成两个模块,(一)PHP程序采集中国气象网站的数据用正则表达式进行提取关键信息,这个以前的文章已经写过不再重复叙述。然后利用飞信的API接口向MM的手机发送天气预报数据。
(二)写一个shell脚本,实现访问PHP程序。考虑到网络偶尔出现故障,加入了sleep和while循环。
最后在crontab里面添加每天定时执行shell脚本即可。
部分关键代码如下:

Tags: ,

Comments (10)

钢铁温度监控系统

标题扯得有点大,哈哈,这是我们工程训练的课题。当然我所在小组的任务只是其中很小的一部分——数据存储,组员除了我全部要考研,没时间弄,无奈任务就交给了我。
第一次用JAVA写程序,比较难看,上程序吧。

Tags:

Leave a Comment

PHPCMS开发文档里看到PHP编码规范

无意间发现这篇文章觉得比较有用,原作者不明。
注:这是从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
4.3.4. 函数定义… 6
4.3.5. 引号… 6
4.3.6. 多语言问题… 7
4.4. 命名原则… 8
4.4.1. 变量、对象、函数名… 8
4.4.2. 常量… 8
4.5. 变量的初始化与逻辑检查… 8
4.6. 安全性… 9
4.7. 兼容性… 9
4.8. 代码重用… 10
4.9. 其他细节问题… 10
4.9.1. 包含调用… 10
4.9.2. 错误报告级别… 11
5. 数据库设计…. 11
5.1. 字段… 11
5.1.1. 表和字段命名… 11
5.1.2. 字段结构… [...]

Tags:

Leave a Comment

PHP实现获取客户端IP地址以及IP地址的伪造

以下是目前网上比较常用的获取客户端IP地址的方法

?View Code PHP<?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’];
[...]

Tags: ,

Comments (2)

关于file_get_contents函数超时的解决方法

今天在测试天气预报系统的时候发现一个问题,就是在网络状况比较差的情况下file_get_contents函数经常读取远程数据失败。经过Google和自己的一番测试,解决方案如下:

?View Code PHP<?php
/*设置超时配合失败之后尝试多次读取,效果比原先好很多*/
$opts = array(
‘http’=>array(
‘method’=>"GET",
‘timeout’=>1, //设置超时
)
);
$context = stream_context_create($opts);
$cnt=1; //最多尝试10次读取
[...]

Tags:

Leave a Comment

关于php的magic_quotes_gpc

今天暂时没有任务,偷偷关注一下安全方面的东东。上午回味了一下安全天使的两篇经典文章
http://www.4ngel.net/article/36.htm
http://www.4ngel.net/article/30.htm
总结出两点:
1。无论如何(即使magic_quotes_gpc=On还是可以采用char()等函数进行注射)数字型变量(SQL语句中没有用引号包围的变量)一定要进行过滤,常用intval()函数处理,
2。字符型变量(SQL语句中用引号包围的变量):
当 magic_quotes_gpc=Off 时一定要进行过滤,常用addslashes()函数处理。
当 magic_quotes_gpc=On 时程序会自动进行转义处理,注射成功的可能性较小,但也有一些程序会自动去掉magic_quotes_gpc造成的影响,造成可以继续注射。
因此为了安全起见,允许对php进行配置的话magic_quotes_gpc尽量设置成On,如果是虚拟主机的话只能尽量在程序上避免出问题了。
关于各种情下magic_quotes_gpc对数据库操作的影响总结如下:
1. 对于magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。
如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。
2. 对于magic_quotes_gpc=off 的情况

Tags: ,

Leave a Comment