Blogger Information
Blog 43
fans 0
comment 0
visits 30462
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
curl扩展与composer
橙絮圆
Original
850 people have browsed it

curl扩展与composer

作业标题:0824 curl扩展与composer
作业内容:1. 使用curl请求聚合支付的驾考宝典题库接口数据, 并渲染到页面上; 2. - composer 常用的指令有哪些? 3. mvc pathinfo 路由映射是怎么实现的?


  • 使用curl请求聚合支付的驾考宝典题库接口数据, 并渲染到页面上;
  1. <?php
  2. //curl初始化 获取一个curl句柄,在后端发起网络请求
  3. $ch=curl_init();
  4. $url="http://v.juhe.cn/jztk/query?";
  5. $key='acab39426b2c6f83c2782c795060bb4a';
  6. $subject=1;
  7. $model='c1';
  8. $testType='rand';
  9. $query=http_build_query(["key"=>$key, 'subject'=>$subject,
  10. 'model'=>$model,'testType'=>$testType]);
  11. //echo $query;
  12. curl_setopt($ch,CURLOPT_URL,$url.$query);
  13. curl_setopt($ch,CURLOPT_HTTPGET,true);
  14. // 启用时会将头文件的信息作为数据流输出。
  15. curl_setopt($ch,CURLOPT_HEADER,false);
  16. // true 将curl_exec()获取的信息以字符串返回,而不是直接输出。
  17. curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
  18. $apiData = curl_exec($ch);
  19. // $apiData = json_decode($apiData,true);
  20. // var_dump( $apiData);
  21. // die;
  22. //echo $apiData;
  23. curl_close($ch);
  24. ?>
  25. <!DOCTYPE html>
  26. <html lang="en">
  27. <head>
  28. <meta charset="UTF-8">
  29. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  30. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  31. <title>驾照题库</title>
  32. </head>
  33. <style>
  34. table {
  35. color: #555;
  36. background-color: #efefef;
  37. border-collapse: collapse;
  38. width: 800px;
  39. text-align: left;
  40. margin: auto;
  41. }
  42. td {
  43. border: 2px solid #FFF;
  44. padding: 5px;
  45. }
  46. table caption {
  47. font-size: 1.2rem;
  48. margin-bottom: 15px;
  49. }
  50. table thead tr:first-of-type {
  51. background-color: darkturquoise;
  52. color: white;
  53. }
  54. </style>
  55. <body>
  56. <script>
  57. const obj = <?=$apiData?>;
  58. // 创建表格元素
  59. const table = document.createElement('table');
  60. console.log(table);
  61. // 表头: 城市 + 标题, 如:合肥天气预报
  62. table.createCaption().textContent ='';
  63. // 创建表头,并尾部添加新行,将表头参数填入
  64. const tr = table.createTHead().insertRow(-1);
  65. tr.insertCell(0).innerText = '驾校答题';
  66. // 遍历未来几天的天气对象数组
  67. obj.result.forEach(item=>{
  68. // 先生成一个新行,并插入到表尾
  69. const row = table.insertRow(-1);
  70. // 遍历每一天的天气对象数组,并填充到生成的单元格中
  71. row.insertCell(0).innerHTML = item.id+"、"+item.question+"<br>"+"A:"+item.item1+"<br>"+
  72. "B:"+item.item2+"<br>"+"C:"+item.item3+"<br>"+"D:"+item.item1+"<br>"+"正确答案:"+item.explains+
  73. "<br>"+"<img src="+item.url+">";
  74. // // row.insertCell(0).innerText = item.date;
  75. // row.insertCell(1).innerText = item.temperature;
  76. // row.insertCell(2).innerText = item.weather;
  77. // row.insertCell(3).innerText = item.direct;
  78. // 将生成的该行插入到表格元素中
  79. table.appendChild(row);
  80. });
  81. // 最后将表格添加到页面中
  82. document.body.appendChild(table);
  83. </script>
  84. </body>
  85. </html>

接口调用

  • composer 常用的指令有哪些?
    显示所有已经安装的包
    composer show
    移除指定的依赖包package_name
    composer remove package_name
    搜索包名为package_name的信息
    composer search package_name
    添加一个指定的包(不需要手动在 composer.json 里添加依赖信息)
    composer 会先找到合适的版本,然后更新composer.json文件,在 require 那添加 package_name 包的相关信息,
    再把相关的依赖下载下来进行安装,最后更新 composer.lock 文件并生成 php 的自动加载文件。
    composer require package_name
    更新所有依赖包
    composer update
    更新指定的包package_name
    composer update package_name
    更新指定的多个包package_name1、package_name2
    composer update package_name1 package_name2
    通过通配符匹配包更新
    composer update vendor/*
  • mvc pathinfo 路由映射是怎么实现的?
  1. <?php
  2. //mvc这种架构模式 url地址都会映射到控制器下面的一个具体操作方法上
  3. namespace mvc;
  4. class User
  5. {
  6. function index($id,$name)
  7. {
  8. return "您好$name,你的id是$id";
  9. }
  10. function getName()
  11. {
  12. return '你好';
  13. }
  14. }
  15. $pathinfo =array_values(array_filter(explode("/",$_SERVER['PATH_INFO']))) ;
  16. // var_dump($pathinfo);
  17. $controller = __NAMESPACE__.'\\'.array_shift($pathinfo);
  18. // echo $controller;
  19. $action = array_shift($pathinfo);
  20. // echo $action;
  21. // $params = ['id'=>1,'name'=>'peter'];
  22. // 从url http://chloe.io/0824/api/index.php/user/index/id/1/name/peter 中提取参数
  23. // var_dump($pathinfo);
  24. for ($i=0; $i < count($pathinfo) ; $i+=2) {
  25. if(isset($pathinfo[$i+1]) && !empty($pathinfo[$i+1]))
  26. $params[$pathinfo[$i]] = $pathinfo[$i+1];
  27. }
  28. // var_dump($params);
  29. echo call_user_func_array([(new $controller),$action],$params);
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post