博客列表 >PHP 验证码、聚合数据天气预报

PHP 验证码、聚合数据天气预报

搁浅
搁浅原创
2021年10月22日 18:29:55822浏览

PHP验证码

  1. $yan = '0123456789abcdefghijklmnopqrstuvwsyz';
  2. $code1 = mt_rand(0,strlen($yan)-1);
  3. $code2 = mt_rand(0,strlen($yan)-1);
  4. $code3 = mt_rand(0,strlen($yan)-1);
  5. $code4 = mt_rand(0,strlen($yan)-1);
  6. //验证码
  7. echo $yan[$code1].$yan[$code2].$yan[$code3].$yan[$code4];
  8. //加入颜色
  9. echo '<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.$yan[$code1].'</span>'.'<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.$yan[$code2].'</span>'.'<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.$yan[$code3].'</span>'.'<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.$yan[$code4].'</span>';
  10. echo '<br>';
  11. //循环方式加入颜色
  12. for($i=0;$i<4;$i++){
  13. echo '<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.$yan[mt_rand(0,strlen($yan)-1)].'</span>';
  14. }

PHP 聚合数据天气预报

  1. $data=['key'=>'这里填接口的key','city'=>'地点'];
  2. $ch=curl_init();//创建curl连接
  3. curl_setopt($ch,CURLOPT_URL,'http://apis.juhe.cn/simpleWeather/query');
  4. curl_setopt($ch,CURLOPT_POST,1);//用POST方式,1为true。
  5. curl_setopt($ch,CURLOPT_POSTFIELDS,$data);//用POST发送接口数据
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
  7. $html = curl_exec($ch);//执行curl输出到页面上,如果写在curl_close($ch)关闭后,就不能输出页面上。
  8. curl_close($ch);//关闭curl连接
  9. $html=json_decode($html,true);//关闭json数据,把json数据转换成数组格式赋值给变量;
  10. //print_r($html);//天气预报数组数据
  11. echo $html['result']['future']['1']['weather'];//单个数据输出

天气预报封装成函数方式

  1. function get_url($url,$data,$is_post=0){
  2. $ch = curl_init(); // 创建一个curl,一直存在,所以在最后要关闭.
  3. // curl_setopt($ch, CURLOPT_URL ,'http://apis.juhe.cn/simpleWeather/query?key=b4bae7656b473402175550b&city=合肥');
  4. if($is_post == 0){
  5. if(!empty($data)){
  6. $url .= '?';
  7. foreach($data as $k=>$v){
  8. $url .= $k . '=' . $v . '&';
  9. }
  10. }
  11. }
  12. curl_setopt($ch, CURLOPT_URL ,$url);
  13. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0,则无限等待。
  14. curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置cURL允许执行的最长秒数。设置超时限制防止死循环
  15. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 爬取重定向页面
  16. curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer,防止盗链
  17. curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  18. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
  19. curl_setopt($ch, CURLOPT_USERAGENT, 'Data');// 在HTTP请求中包含一个"User-Agent: "头的字符串。
  20. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 强制使用 HTTP/1.1
  21. if($is_post == 1){
  22. curl_setopt($ch, CURLOPT_POST, 1); // 这个请求是post
  23. curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
  24. }
  25. $html = curl_exec($ch); // 去执行curl,并且打印出来,但是如果关闭了,就不会打印出来
  26. if(curl_errno($ch)){
  27. return curl_errno($ch);
  28. }
  29. curl_close($ch);
  30. return $html;
  31. }
  32. header( 'Content-Type:application/json' );//请求头,返回的数据格式
  33. //准备好key和数据
  34. $data = [
  35. 'key' => 'b4bae7656b473402175550b',
  36. 'city' => '合肥'
  37. ];
  38. $get_url = get_url('http://apis.juhe.cn/simpleWeather/query',$data);//调用函数
  39. $arr = json_decode($get_url,true);//把返回的json数据转为数组
  40. print_r($arr);
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议