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

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

程序员文章站 2022-03-06 13:48:51
...

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);