PHP基础:json、文件引入,时间戳
程序员文章站
2022-03-03 22:08:43
...
json
- json 格式
{
"key":"value", // value 可以是(1) 数字 (2)字符串 (3)布尔值 (4)数组[] (5)对象{} (6)null
"key":"value" //最后一个不加,
}
- json和数组或对象转变
(1) json转为数组或对象
$obj='{"message":"success","status":200,"date":"20211017","time":"2021-10-17 09:14:32"}';
print_r(json_decode($obj , true));
显示
Array ( [message] => success [status] => 200 [date] => 20211017 [time] => 2021-10-17 09:14:32 )
通过json_decode($obj , true),就可以把json转为数组,不加true 就可以转为对象。
(2)数组或对象转为json
$arr = json_decode($obj , true);// 调用上面转换后的数组
echo json_encode($arr);
显示
{"message":"success","status":200,"date":"20211017","time":"2021-10-17 09:14:32"}
- 接口api
(1)字符集
//字符集
header("Content-type: text/html; charset=utf-8");
//返回json格式
header("Content-type:application/json");
(2)调用天气api并显示
$url ='http://t.weather.itboy.net/api/weather/city/101010100';
function get_weather($url){
$ch = curl_init();//创建curl
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0,则无限等待。
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置cURL允许执行的最长秒数。设置超时限制防止死循环
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 爬取重定向页面
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer,防止盗链
curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
curl_setopt($ch, CURLOPT_USERAGENT, 'Data');// 在HTTP请求中包含一个"User-Agent: "头的字符串。
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 强制使用 HTTP/1.1
$html = curl_exec($ch); // 去执行curl,并且打印出来,但是如果关闭了,就不会打印出来
if(curl_errno($ch)){
return curl_errno($ch);
}
curl_close($ch);
return $html;
}
//print_r(json_decode(get_weather($url),true) );
$weather = json_decode(get_weather($url),true);
$datas=$weather['data']['forecast'];
if($weather['status'] != 200){
echo '获取北京天气失败';
}else{
echo $weather['cityInfo']['city'].' ('.$weather['cityInfo']['citykey'].') ';
echo '获取时间:'.$weather['time'].',更新时间:'.$weather['cityInfo']['updateTime'];
echo '<hr />';
echo '<table>';
echo '<thead>';
echo '<tr>';
echo ' <th>日期</th>';
echo ' <th>高温</th>';
echo ' <th>低温</th>';
echo ' <th>年月日</th>';
echo ' <th>星期</th>';
echo ' <th>日出时间</th>';
echo ' <th>日落时间</th>';
echo ' <th>空气质量</th>';
echo ' <th>风向</th>';
echo ' <th>风级</th>';
echo ' <th>天气</th>';
echo ' <th>提示</th>';
echo '</tr>';
echo '</thead>';
echo '<tbody>';
foreach ($datas as $v){
echo '<tr>';
foreach ($v as $d){
echo '<td>'.$d.'</td>';
}
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
}
(3)输出json数据
function json_data($code,$data=[]){
header( 'Content-Type:application/json' );
$msg = [
0 => '成功',
1 => '网络错误',
2 => '账户错误',
3 => '密码错误'
];
if($code == 0){
$arr = [
'code' => 0,
'msg' => '成功',
'data' => $data
];
}else{
$arr = [
'code' => $code,
'msg' => $msg[$code]
];
}
return json_encode($arr);
}
$data = [
[
'name' => '欧阳克',
'age' => 38,
'gongfu' => [
'php',
'小程序'
]
],
[
'name' => '灭绝师太',
'age' => 18,
'gongfu' => [
'uniapp',
'php'
]
],
[
'name' => '朱天蓬',
'age' => 48,
'gongfu' => [
'html',
'css'
]
]
];
echo json_data(0, $data);
引入文件
- require
没有返回值
加载失败,会出现致命错误
加载不可缺少的文件
- include
有返回值
加载失败会出现警告,但是后续代码还能继续执行
加载一般文件,不影响逻辑运行,隐藏错误继续运行
@ 可以把错误信息屏蔽掉
- require_once 引入多次,只执行一次
-
include_once 引入多次,只执行一次
-
目录
. 当前目录
.. 上级目录
日期时间函数
- getdate() 获取当前日期和时间的详细信息
print_r( getdate());
显示
Array ( [seconds] => 11 [minutes] => 29 [hours] => 11 [mday] => 17 [wday] => 0 [mon] => 10 [year] => 2021 [yday] => 289 [weekday] => Sunday [month] => October [0] => 1634441351 )
- time() 获取时间戳
echo time() + 15 * 24 * 60 * 60;
//显示 1635740001
- date 格式化日期,第一个参数,是日期时间格式。
echo date('Y-m-d H:i:s',time()+ 15 * 24 * 60 * 60);
//显示 2021-11-01 12:14:55
- strtotime 把日期时间转换为时间戳
echo strtotime('2021-12-30 23:59:59');
//显示 1640879999
预习
sql 增删改查
-
插入 INSERT INTO
-
查询
SELECT * FROM `user`
-
修改 UPDATE
-
删除 DELETE
-
WHERE 条件
-
返回值
$stmt = $pdo->prepare('SELECT name,phone FROM `user`');
-
LIMIT 分页
-
ORDER BY 排序语句