<?php
// 生成一个PHP数组
$data = array (
0 => array ( "a" => "orange",
"b" => "banana",
"c" => "apple"
),
1 => array ( 1,2,3,4,5,6),
2 => array ( "first",5 => "second","third")
);
$data[3]['id']=ཚ'
$data[3]['content']="phperwei31";
//访问二维数组的方法
echo $data[0]["a"];
echo $data[1][1];
echo $data[2][0];
echo $data[2][5];
echo $data[2][6];//注意,前面出现了5,下面接着自动为6,而不是2,第三个
echo $data[3]['id'];
echo $data[3]['content'];
// 把PHP数组转成JSON字符串
$json_string = json_encode($data);
// 写入文件
file_put_contents('test.json', $json_string);
?>
<?php
// 从文件中读取数据到PHP变量
$json_string = file_get_contents('test.json');
// 把JSON字符串转成PHP数组
$data = json_decode($json_string, true);
// 显示出来看看
var_dump($data);
?>
php api验证码怎么写?本文简单介绍了php手机短信验证码功能、PHP短信api的实例代码,有兴趣的同学可以参考一下。
代码如下 | 复制代码 |
<? /*-------------------------------- 功能: 中国短信网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); } |