欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP基础:json、文件引入,时间戳

程序员文章站 2022-03-03 22:08:43
...

json

  • json 格式
  1. {
  2. "key":"value", // value 可以是(1) 数字 (2)字符串 (3)布尔值 (4)数组[] (5)对象{} (6)null
  3. "key":"value" //最后一个不加,
  4. }
  • json和数组或对象转变

(1) json转为数组或对象

  1. $obj='{"message":"success","status":200,"date":"20211017","time":"2021-10-17 09:14:32"}';
  2. print_r(json_decode($obj , true));

显示

  1. Array ( [message] => success [status] => 200 [date] => 20211017 [time] => 2021-10-17 09:14:32 )

通过json_decode($obj , true),就可以把json转为数组,不加true 就可以转为对象。

(2)数组或对象转为json

  1. $arr = json_decode($obj , true);// 调用上面转换后的数组
  2. echo json_encode($arr);

显示

  1. {"message":"success","status":200,"date":"20211017","time":"2021-10-17 09:14:32"}
  • 接口api

(1)字符集

  1. //字符集
  2. header("Content-type: text/html; charset=utf-8");
  3. //返回json格式
  4. header("Content-type:application/json");

(2)调用天气api并显示

  1. $url ='http://t.weather.itboy.net/api/weather/city/101010100';
  2. function get_weather($url){
  3. $ch = curl_init();//创建curl
  4. curl_setopt($ch,CURLOPT_URL,$url);
  5. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0,则无限等待。
  6. curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置cURL允许执行的最长秒数。设置超时限制防止死循环
  7. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 爬取重定向页面
  8. curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer,防止盗链
  9. curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
  11. curl_setopt($ch, CURLOPT_USERAGENT, 'Data');// 在HTTP请求中包含一个"User-Agent: "头的字符串。
  12. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 强制使用 HTTP/1.1
  13. $html = curl_exec($ch); // 去执行curl,并且打印出来,但是如果关闭了,就不会打印出来
  14. if(curl_errno($ch)){
  15. return curl_errno($ch);
  16. }
  17. curl_close($ch);
  18. return $html;
  19. }
  20. //print_r(json_decode(get_weather($url),true) );
  21. $weather = json_decode(get_weather($url),true);
  22. $datas=$weather['data']['forecast'];
  23. if($weather['status'] != 200){
  24. echo '获取北京天气失败';
  25. }else{
  26. echo $weather['cityInfo']['city'].' ('.$weather['cityInfo']['citykey'].') ';
  27. echo '获取时间:'.$weather['time'].',更新时间:'.$weather['cityInfo']['updateTime'];
  28. echo '<hr />';
  29. echo '<table>';
  30. echo '<thead>';
  31. echo '<tr>';
  32. echo ' <th>日期</th>';
  33. echo ' <th>高温</th>';
  34. echo ' <th>低温</th>';
  35. echo ' <th>年月日</th>';
  36. echo ' <th>星期</th>';
  37. echo ' <th>日出时间</th>';
  38. echo ' <th>日落时间</th>';
  39. echo ' <th>空气质量</th>';
  40. echo ' <th>风向</th>';
  41. echo ' <th>风级</th>';
  42. echo ' <th>天气</th>';
  43. echo ' <th>提示</th>';
  44. echo '</tr>';
  45. echo '</thead>';
  46. echo '<tbody>';
  47. foreach ($datas as $v){
  48. echo '<tr>';
  49. foreach ($v as $d){
  50. echo '<td>'.$d.'</td>';
  51. }
  52. echo '</tr>';
  53. }
  54. echo '</tbody>';
  55. echo '</table>';
  56. }

PHP基础:json、文件引入,时间戳

(3)输出json数据

  1. function json_data($code,$data=[]){
  2. header( 'Content-Type:application/json' );
  3. $msg = [
  4. 0 => '成功',
  5. 1 => '网络错误',
  6. 2 => '账户错误',
  7. 3 => '密码错误'
  8. ];
  9. if($code == 0){
  10. $arr = [
  11. 'code' => 0,
  12. 'msg' => '成功',
  13. 'data' => $data
  14. ];
  15. }else{
  16. $arr = [
  17. 'code' => $code,
  18. 'msg' => $msg[$code]
  19. ];
  20. }
  21. return json_encode($arr);
  22. }
  23. $data = [
  24. [
  25. 'name' => '欧阳克',
  26. 'age' => 38,
  27. 'gongfu' => [
  28. 'php',
  29. '小程序'
  30. ]
  31. ],
  32. [
  33. 'name' => '灭绝师太',
  34. 'age' => 18,
  35. 'gongfu' => [
  36. 'uniapp',
  37. 'php'
  38. ]
  39. ],
  40. [
  41. 'name' => '朱天蓬',
  42. 'age' => 48,
  43. 'gongfu' => [
  44. 'html',
  45. 'css'
  46. ]
  47. ]
  48. ];
  49. echo json_data(0, $data);

PHP基础:json、文件引入,时间戳

引入文件

  • require

没有返回值
加载失败,会出现致命错误
加载不可缺少的文件

  • include

有返回值
加载失败会出现警告,但是后续代码还能继续执行
加载一般文件,不影响逻辑运行,隐藏错误继续运行
@ 可以把错误信息屏蔽掉

  • require_once 引入多次,只执行一次
  • include_once 引入多次,只执行一次

  • 目录
    . 当前目录
    .. 上级目录

日期时间函数

  • getdate() 获取当前日期和时间的详细信息
  1. print_r( getdate());

显示

  1. Array ( [seconds] => 11 [minutes] => 29 [hours] => 11 [mday] => 17 [wday] => 0 [mon] => 10 [year] => 2021 [yday] => 289 [weekday] => Sunday [month] => October [0] => 1634441351 )
  • time() 获取时间戳
  1. echo time() + 15 * 24 * 60 * 60;
  2. //显示 1635740001
  • date 格式化日期,第一个参数,是日期时间格式。
  1. echo date('Y-m-d H:i:s',time()+ 15 * 24 * 60 * 60);
  2. //显示 2021-11-01 12:14:55
  • strtotime 把日期时间转换为时间戳
  1. echo strtotime('2021-12-30 23:59:59');
  2. //显示 1640879999

预习

sql 增删改查

  • 插入 INSERT INTO

  • 查询

  1. SELECT * FROM `user`
  • 修改 UPDATE

  • 删除 DELETE

  • WHERE 条件

  • 返回值

  1. $stmt = $pdo->prepare('SELECT name,phone FROM `user`');
  • LIMIT 分页

  • ORDER BY 排序语句