代码如下 | 复制代码 |
<? /*-------------------------------- 功能: 中国短信网PHP HTTP接口 发送短信 修改日期: 2009-04-08 说明: http://http.c123.com/tx/?uid=用户账号&pwd=MD5位32密码&mobile=号码&content=内容 状态: 100 发送成功 101 验证失败 102 短信不足 103 操作失败 104 非法字符 105 内容过多 106 号码过多 107 频率过快 108 号码内容空 109 账号冻结 110 禁止频繁单条发送 111 系统暂定发送 112 号码不正确 120 系统升级 --------------------------------*/ $uid='9999'; //用户账号 $pwd='9999'; //密码 $mobile ='13912341234,13312341234,13512341234,02122334444'; //号码 $content='中国短信网PHP HTTP接口'; //内容 //即时发送 $res= sendSMS($uid,$pwd,$mobile,$content); echo$res;
//定时发送 /* $time = '2010-05-27 12:11'; $res = sendSMS($uid,$pwd,$mobile,$content,$time); echo $res; */ functionsendSMS($uid,$pwd,$mobile,$content,$time='',$mid='') { $http='http://http.c123.com/tx/'; $data=array ( 'uid'=>$uid, //用户账号 'pwd'=>strtolower(md5($pwd)), //MD5位32密码 'mobile'=>$mobile, //号码 'content'=>$content, //内容 'time'=>$time, //定时发送 'mid'=>$mid //子扩展号 ); $re= postSMS($http,$data); //POST方式提交 if( trim($re) =='100') { return"发送成功!"; } else { return"发送失败! 状态:".$re; } }
functionpostSMS($url,$data='') { $row=parse_url($url); $host=$row['host']; $port=$row['port'] ?$row['port']:80; $file=$row['path']; while(list($k,$v) = each($data)) { $post.= rawurlencode($k)."=".rawurlencode($v)."&";//转URL标准码 } $post=substr($post, 0 , -1 ); $len=strlen($post); $fp= @fsockopen($host,$port,$errno,$errstr, 10); if(!$fp) { return"$errstr ($errno)\n"; }else{ $receive=''; $out="POST $file HTTP/1.1\r\n"; $out.="Host: $host\r\n"; $out.="Content-type: application/x-www-form-urlencoded\r\n"; $out.="Connection: Close\r\n"; $out.="Content-Length: $len\r\n\r\n"; $out.=$post; fwrite($fp,$out); while(!feof($fp)) { $receive.=fgets($fp, 128); } fclose($fp); $receive=explode("\r\n\r\n",$receive); unset($receive[0]); returnimplode("",$receive); } } ?> |
PHP语言虽然功能强大,但并不代表其没有缺点,在编写代码的过程中未免会遇到一些让人头痛的问题。下面我们将为大家介绍有关PHP整数取余返回负数的解决办法。
我们先来看个例子.
代码如下 | 复制代码 |
$res = 16244799483; echo $res%9999999; // 输出结果为 -5069794, 正确的结果应该是4801107 |
其实这也算上PHP一个BUG吧.最主要是PHP是个弱类型语言.他内置了机器来判断用户的类型.
但是机器毕竟是机器.也有判断出错的时候.就像上面.所以这时候我们就需要人工干预下.
所以我就想到要用下面的方法来解决PHP整数取余返回负数的问题.
代码如下 | 复制代码 |
$res = floatval(16244799483); var_dump($res % 9999999); |
我们看到结果还是错误的-5069794.
但是值得注意的是返回是一个int类型的.
详细思考了一下.PHP整数取余返回负数的问题是这样处理的.
PHP取余默认为整数的.
而且当你定义$res = 16244799483;
其实就已经溢出了.所以要加上强制类型转换.变成float类型.
但是这样还不够.因为%这个取模计算还是针对整数的.
所以我们需要一个函数fmod.是针对float类型的.
所以最终PHP整数取余返回负数的解决办法为:
代码如下 | 复制代码 |
$res = floatval(16244799483); var_dump(fmod($res,9999999)); |
这样我们就解决了PHP整数取余返回负数这个问题.:)
小编分享了一段php实现的简单日志写入函数的代码,不知道php如何写日志的同学快来看看吧!
代码如下 | 复制代码 |
functionlog($logthis){ file_put_contents('logfile.log',date("Y-m-d H:i:s")." ".$logthis."\r\n", FILE_APPEND | LOCK_EX); } // use \r\n for new line on windows, just \n on linux // PHP_EOL cross platform solution for new line // // so better to use this functionlog($logthis){ file_put_contents('logfile.log',date("Y-m-d H:i:s")." ".$logthis.PHP_EOL, FILE_APPEND | LOCK_EX); } |
本文为各位介绍了PHP设置session定期自动清理的例子,因为session默认是15分钟自动把变量给清除内存了,但有一些时间并不生效了,下面我们就来看看。
配置完成php后默认php会将session生成到/tmp目录下,导致/tmp目录文件很多,因此需要对session进行定期的清理。
修改php.ini:
代码如下 | 复制代码 |
[root@hz scripts]# grep"session.save_path = "/usr/local/php/lib/php.ini ; session.save_path ="N;/path" ; session.save_path ="N;MODE;/path" ;session.save_path ="/tmp" session.save_path ="2;/tmp/session" [root@hz ~]# cat /byrd/script/Cleartmpsen.sh #!/bin/bash # Version:1.0 # Author:Byrd # Site:www.t4x.org # Contact:root#t4x.org # This is script will clear php session before 3 hours. i="0 1 2 3 4 5 6 7 8 9 a b c d e f" forbyrd in$i; do forx in$i; do mkdir-p /tmp/session/$byrd/$x; done; done chown-R bywww:bywww /tmp/session chmod-R 1777 /tmp/session find /tmp/session -amin +180 -execrm -rf {} \; if[ `grep'session.save_path ='/usr/local/php/lib/php.ini | wc -l` -eq 3 ];then sed -i's#;session.save_path = "/tmp"#;session.save_path = "/tmp"\nsession.save_path = "2;/tmp/session"#g'/usr/local/php/lib/php.ini else exit1 fi |
定时任务:
[root@hz scripts]#echo'#This is a config php session BY:BYRD AT:2015-11-12'>>/var/spool/cron/root
[root@hz scripts]#echoƆ 3 * * 0 /bin/bash /byrd/scripts/spehspsion.sh >/dev/null 2>&1'>>/var/spool/cron/root
备注:因为此配置修改了php.ini因此需要重新启动php进程。