博客列表 >while和for循环post和curl网络接口

while和for循环post和curl网络接口

空心菜博客
空心菜博客原创
2021年10月27日 16:23:02536浏览

一.循环,计算循环

1. while

  1. $int = 1;
  2. ()里是条件: > >= < <=
  3. == ===
  4. 死循环,而是说这个程序会一直进行下去,一直循环
  5. 1<10 永远是对的,true
  6. 给他停止的一个条件,1< 10 这个条件呢,我们要让它有机会结束
  7. while($int < 10){
  8. $int++;
  9. echo '小璐子要睡觉了吗' ;
  10. echo '<hr>';
  11. }
  12. $s2 = (int)20.23;
  13. echo ('hello\\n word')

2.do while

  1. {}是代码 ()条件
  2. $int = 1;
  3. do{
  4. echo '第' . $int . '次';
  5. echo '<hr>';
  6. $int++;
  7. }while($int < 10);

3.1 for 计算

  1. 符号千万不能用错
  2. for($int = 1;$int < 10 ;$int++){
  3. echo '第' . $int . '次';
  4. echo '<hr>';
  5. }

3.2 for 结束循环 break

  1. for($int = 1;$int < 10 ;$int++){
  2. echo '第' . $int . '次';
  3. echo '<hr>';
  4. if(!empty($_GET['num']) && $int == $_GET['num']){
  5. break;
  6. }
  7. }

3.3 for 暂停循环 continue

  1. for($int = 1;$int < 10 ;$int++){
  2. if(!empty($_GET['num']) && $int == $_GET['num']){
  3. continue;
  4. }
  5. echo '第' . $int . '次';
  6. echo '<hr>';
  7. }

4. 随机数,函数

  1. echo mt_rand(0,9)
  2. $a = mt_rand(0,255);
  3. $b = mt_rand(0,255);
  4. $c = mt_rand(0,255);

5.随机变色验证码-代码列示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>随机变色验证码</title>
  8. </head>
  9. <body>
  10. <h1>登录验证码</h1>
  11. <?php
  12. $code = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  13. for ($i = 0; $i < 4; $i++) {
  14. echo '<span style="color:rgb(' . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ',' . mt_rand(0, 255) . ')"> ' . $code[mt_rand(0, strlen($code) - 1)] . '</span>';
  15. }
  16. ?>
  17. <!-- <span style="color:rgb(<?= $a ?>,<?= $b ?>,<?= $c ?>)"><?= $num ?><?= $num1 ?><?= $num2 ?><?= $num3 ?><br>验证码</span> -->
  18. </body>
  19. </html>

6.九九乘法表-代码列示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=\, initial-scale=1.0">
  7. <title>九九乘法表</title>
  8. </head>
  9. <body>
  10. <?php
  11. //y如果小于等于9 ,那就说明,第一次,第二次,第N次 ,都要执行9次
  12. //y要小于等于,它的上司, i是1,y是1,它俩一样,就执行1次,
  13. //i 是2,y重复被赋值为1,再找它的上司,i是2,他俩一样的话就执行2次
  14. echo '<table border="1">';
  15. for ($i = 1; $i <= 9; $i++) {
  16. echo ' </tr> ';
  17. for ($y = 1; $y <= $i; $y++)
  18. echo '<td>' . $y . '*' . $i . '=' . $i * $y . '</td>';
  19. }
  20. echo '</table>';
  21. ?>
  22. </body>
  23. </html>

二、post和Curl

1.超级全局变量

  1. $_GET 网址上显示出来,在浏览器的收藏里使用更方便
  2. $_POST 不显示传值内容,这样做更安全
  3. $_COOKIE $_SESSION 缓存,保存用户信息
  4. get 如果传值 能让对方看到,就可以用get
  5. post 一般用在账号、密码、支付密码,加密的东西,不能让别人看到
  6. $_REQUEST 一维数组, 包含了$_post / $_GET / $_COOKIE
  7. 要注意post get cookie 会出现重复的下标

1.1 计算器-代码列示

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <h1>计算器</h1>
  11. <form action="" method="post">
  12. <input type="number" name="num1" value="<?= isset($_POST['num1']) ? $_POST['num1'] : ''; ?>" />
  13. <select name="opt">
  14. <option value="+" <?= isset($_POST['opt']) && $_POST['opt'] == '+' ? 'selected' : '' ?>>+</option>
  15. <option value="-" <?= isset($_POST['opt']) && $_POST['opt'] == '-' ? 'selected' : '' ?>>-</option>
  16. <option value="*" <?= isset($_POST['opt']) && $_POST['opt'] == '*' ? 'selected' : '' ?>>*</option>
  17. <option value="/" <?= isset($_POST['opt']) && $_POST['opt'] == '/' ? 'selected' : '' ?>>/</option>
  18. <option value="%" <?= isset($_POST['opt']) && $_POST['opt'] == '%' ? 'selected' : '' ?>>%</option>
  19. </select>
  20. <input type="number" name="num2" value="<?= isset($_POST['num2']) ? $_POST['num2'] : ''; ?>" />
  21. <input type="submit" value="计算" />
  22. </form>
  23. </body>
  24. </html>
  25. <?php
  26. print_r($_REQUEST);
  27. if(!empty($_POST)){
  28. if($_POST['opt'] == '+')
  29. {
  30. $num = (int)$_POST['num1'] + (int)$_POST['num2'];
  31. }else if($_POST['opt'] == '-')
  32. {
  33. $num = (int)$_POST['num1'] - (int)$_POST['num2'];
  34. }else if($_POST['opt'] == '*')
  35. {
  36. $num = (int)$_POST['num1'] * (int)$_POST['num2'];
  37. }else if($_POST['opt'] == '/')
  38. {
  39. $num = (int)$_POST['num1'] / (int)$_POST['num2'];
  40. }else if($_POST['opt'] == '%')
  41. {
  42. $num = (int)$_POST['num1'] % (int)$_POST['num2'];
  43. }
  44. echo '数字1'. $_POST['opt'] . '数字2,结果为:' .$num;
  45. }
  46. ?>

1.2 全局变量的组合

  1. <?php
  2. // $GLOBALS 全部全局变量的组合,二维数组
  3. print_r($GLOBALS);
  4. print_r($_SERVER); // 服务器的环境,会使用里面的下标时时间戳
  5. print_r($_ENV);

1.3预定义常量

  1. echo __FILE__ ;// 当前文件
  2. echo __DIR__ ;//当前目录
  3. // echo PHP_VERSION; 后台管理程序,显示在后台首页

2.网络请求/网络抓取

file() 把整个文件读入到一个数组中

  1. echo file_get_contents('http://www.ouyangke.cn');
  2. 我们的需求,是需要网络请求的。
  3. 我们就算不抓取别人的数据,也会用到别人的接口
  4. 比如说,微信支付,用到微信支付,就需要用到别人提供的接口,
  5. 只要用第三方的功能,别人提供接口的话,我们就需要用网络请求
  6. echo file_get_contents('http://apis.juhe.cn/simpleWeather/query');

2.1封装网络请求post方式方法

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