博客列表 >while和for循环、post提交与curl网络请求

while和for循环、post提交与curl网络请求

Leo的博客
Leo的博客原创
2021年11月02日 13:57:191062浏览

while和for循环

  1. // 1.循环:计算循环
  2. // while
  3. $int = 1;
  4. //()里呢 是条件:> >= < < =
  5. // == ===
  6. // 死循环
  7. // 1 < 10 永远是对的,是true真
  8. // 给它停止的一个条件,1<10这个条件呢,我们要让它有机会结束
  9. // while($int < 10){
  10. // 这里也是代码,什么代码都可以在这里面写,foreach、if条件、正常的代码、
  11. echo '第'. $int .'次';
  12. echo '<hr>';
  13. $int++;
  14. }

输出:第1次

第2次

第3次

第4次

第5次

第6次

第7次

第8次

第9次

  1. // 2.2 do while
  2. // {}是代码 ()是条件
  3. // do while 和 while 的区别是 do while 会先执行一遍
  4. $int = 1 ;
  5. do{
  6. echo '第'.$int.'次';
  7. echo '<hr>';
  8. $int++;
  9. }while($int<10);
  10. 输出结果和1.的输出效果一样的
  11. // 3.3for 循环 也是计算循环
  12. // {}代码 ()条件
  13. // 和 while 有一点不一样 ()里不止一条语句 它里面有三条
  14. for($int = 1; $int < 10; $int++){
  15. echo '第'.$int.'次';
  16. echo'<hr>';
  17. }
  18. // 3.4 结束命令 break
  19. for($int = 1; $int < 10 ; $int++){
  20. echo '第'.$int.'次';
  21. echo '<hr>';
  22. // 在{}里能写任何代码
  23. // if( $int == 5 ){ 输出:1-5次
  24. if( isset($_GET['num']) && $int == $_GET['num'] ){
  25. break;
  26. }
  27. }
  28. // break 可以在 switch 里使用
  29. // 3.5 continue 其中一条数据,不输出
  30. // for($int = 1; $int < 10 ; $int++){
  31. if(isset($_GET['num']) && $int == $_GET['num'] ){
  32. continue;
  33. }
  34. echo '第' . $int . '次';
  35. echo '<hr>';
  36. }
  37. // http://www.163.com/6.php?num=2 num输入多少 那个数字就不输出
  38. ?>
  39. <!-- <!DOCTYPE html>
  40. <html lang="en">
  41. <head>
  42. <meta charset="UTF-8">
  43. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  44. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  45. <title>Document</title>
  46. </head>
  47. <body>
  48. <table border="1"> -->
  49. <?php
  50. for ($i=1; $i <10 ; $i++) {
  51. echo '<td>二郎神'.$i.'</td>';
  52. 重复输出名字
  53. }
  54. ?>
  55. <!-- </table>
  56. </body>
  57. </html> -->
  58. <?
  59. // 3.6 随机数.函数
  60. // echo mt_rand(0,99); //随机0-99的函数
  61. ?>
  62. <!DOCTYPE html>
  63. <html lang="en">
  64. <head>
  65. <meta charset="UTF-8">
  66. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  67. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  68. <title>Document</title>
  69. </head>
  70. <body>
  71. <!-- <h1>登录验证码</h1> -->
  72. <?php
  73. $a = mt_rand(0,255);
  74. $b = mt_rand(0,255);
  75. $c = mt_rand(0,255);
  76. echo $a . '-' . $b . '-' . $c;
  77. $code = mt_rand(0,9) . mt_rand(0,9). mt_rand(0,9). mt_rand(0,9);
  78. $code = '0123456789abcdefghijklmnopqrstuvwsyz';
  79. // 计算字符串长度
  80. // 用strlen来计算 code的长度
  81. echo strlen($code);
  82. $num1 = $code[mt_rand(0,strlen($code)-1)]; //只能是数字
  83. $num2 = $code[mt_rand(0,strlen($code)-1)];
  84. $num3 = $code[mt_rand(0,strlen($code)-1)];
  85. $num4 = $code[mt_rand(0,strlen($code)-1)];
  86. $num = mt_rand(0,strlen($code)-1);
  87. echo $code[$num]; //获取字符串里的单个数据
  88. for($i=0;$i<4;$i++){
  89. 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>';
  90. }
  91. ?>
  92. <!-- 取出多个数据 -->
  93. <!-- <span style="color:rgb( <?=$a ?>,<?=$b ?>,<?=$c ?> )"><?=$num1?><?=$num2?><?=$num3?><?=$num4?></span> -->
  94. <!DOCTYPE html>
  95. <html lang="en">
  96. <head>
  97. <meta charset="UTF-8">
  98. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  99. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  100. <title>乘法口诀</title>
  101. </head>
  102. <body>
  103. <?php
  104. echo '<table border="1">';
  105. for($i=1;$i<=9;$i++){
  106. echo '<tr>';
  107. // y 如果小于等于9,那就说明y,第一次、第二次、第N次,都要执行9次
  108. // y 要小于等于,它的上司,i 是1,y是1,他俩一样的话,就执行1次
  109. // i是2,y重新被赋值为1,在找它上司,i是2,他俩一样的话,就执行2次
  110. for($y=1; $y<=$i; $y++){
  111. echo ' <td>';
  112. echo $y;
  113. echo '*';
  114. echo $i;
  115. echo '=';
  116. echo $i * $y; //这是结果
  117. echo '</td>';
  118. }
  119. echo '</tr>';
  120. }
  121. echo '</table>';
  122. ?>
  123. <?php
  124. //乘法口诀反过来
  125. echo '<table border="1">';
  126. for($i=9;$i>=1;$i--){
  127. //如果是大数字在前面,后面要--
  128. echo '<tr>';
  129. for($y=1; $y<=$i; $y++){
  130. echo ' <td>';
  131. echo $y;
  132. echo '*';
  133. echo $i;
  134. echo '=';
  135. echo $i * $y; //这是结果
  136. echo '</td>';
  137. }
  138. echo '</tr>';
  139. }
  140. echo '</table>';
  141. // 抓取和日志用for循环
  142. //乘法口诀表就忽略了
  143. </table> -->
  144. </body>
  145. </html>

输出:

post提交与curl网络请求

  1. <?php
  2. // 1、超级全局变量
  3. // $_GET 网址上显示出来,在浏览器的收藏里使用,很方便
  4. // $_POST 不显示传值内容,这样做,更安全
  5. // $_COOKIE、$SESSION 缓存,保存用户信息
  6. // $_FILES 文件上传信息
  7. // get 如果传值 能让对方看到,就可以用get
  8. // post 一般用在 账号、密码、支付密码、加密的东西,不能其他人看到的
  9. // $_REQUEST,一维数组:包含了$_POST、$_GET、$_COOKIE
  10. // 要注意 post 和 get 和 cookie 会出现重复的下标
  11. ?>
  12. <!-- <!DOCTYPE html>
  13. <html lang="en">
  14. <head>
  15. <meta charset="UTF-8">
  16. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  17. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  18. <title>Document</title>
  19. </head>
  20. <body>
  21. <h1>计算器</h1>
  22. <form action="" method="post">
  23. <input type="number" name="num1" value="<?=isset($_POST['num1'])?$_POST['num1']:''; ?>" />
  24. <select name="opt">
  25. <option value="+" <?=isset($_POST['opt']) && $_POST['opt']=='+'?'selected':'' ?>>+</option>
  26. <option value="-" <?=isset($_POST['opt']) && $_POST['opt']=='-'?'selected':'' ?>>-</option>
  27. <option value="*" <?=isset($_POST['opt']) && $_POST['opt']=='*'?'selected':'' ?>>*</option>
  28. <option value="/" <?=isset($_POST['opt']) && $_POST['opt']=='/'?'selected':'' ?>>/</option>
  29. <option value="%" <?=isset($_POST['opt']) && $_POST['opt']=='%'?'selected':'' ?>>%</option>
  30. </select>
  31. <input type="number" name="num2" value="<?=isset($_POST['num2'])?$_POST['num2']:''; ?>" />
  32. <input type="submit" value="计算" />
  33. </form>
  34. </body>
  35. </html> -->
  36. <?php
  37. print_r($_REQUEST);
  38. if(!empty($_POST)){
  39. if($_POST['opt'] == '+')
  40. {
  41. $num = (int)$_POST['num1'] + (int)$_POST['num2'];
  42. }else if($_POST['opt'] == '-')
  43. {
  44. $num = (int)$_POST['num1'] - (int)$_POST['num2'];
  45. }else if($_POST['opt'] == '*')
  46. {
  47. $num = (int)$_POST['num1'] * (int)$_POST['num2'];
  48. }else if($_POST['opt'] == '/')
  49. {
  50. $num = (int)$_POST['num1'] / (int)$_POST['num2'];
  51. }else if($_POST['opt'] == '%')
  52. {
  53. $num = (int)$_POST['num1'] % (int)$_POST['num2'];
  54. }
  55. // echo '数字1'. $_POST['opt'] . '数字2,结果为:' .$num;
  56. // 把get 换成post
  57. // }
  58. // $GLOBALS 全部全局变量的组合,二维数组
  59. // print_r($GLOBALS);
  60. // print_r($_SERVER); //服务器的环境,会使用里面的下标是时间戳,也会有函数获取时间戳
  61. // print_r($_ENV); 也是环境变量
  62. // 预定义常量
  63. // echo __FILE__; // 当前文件
  64. // echo __DIR__; //当前目录
  65. // echo PHP_VERSION; //后台管理程序,显示在后台首页
  66. // 2.网络请求
  67. // file() 把整个文件读入到一个数组中
  68. // print_r( file('http://apis.juhe.cn/simpleWeather/query') );
  69. // 6-5 7:01
  70. // echo file_get_contents( 'http://apis.juhe.cn/simpleWeather/query' );
  71. // 但是是读取到字符串中
  72. // 我们的需求,是需要网络请求的。
  73. // 我们就算不抓取别人的数据,也会用到别人的接口
  74. // 比如说,微信支付,用到微信支付,就需要用别人提供的接口
  75. // 只要用第三方的功能,别人提供接口的话,我们就需要用网络请求
  76. // Curl 网络请求,因为它能请求post
  77. // $ch = curl_init(); // 创建一个curl,它一直存在在这里
  78. // // 要配置很多项。可以直接网上搜一个
  79. // // curl_setopt($ch, CURLOPT_URL ,'http://apis.juhe.cn/simpleWeather/query?key=abc4b64ae7656b460723402175a5650b&city=合肥');
  80. // curl_setopt($ch, CURLOPT_URL ,'http://apis.juhe.cn/simpleWeather/query');
  81. $data = [
  82. 'key' => 'abc4b64ae7656b460723402175a5650b',
  83. 'city' => '合肥'
  84. ];
  85. curl_setopt($ch, CURLOPT_POST, 1); // 这个请求是post
  86. curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
  87. $html = curl_exec($ch); // 去执行curl
  88. function get_url($url,$data,$is_post=0){
  89. $ch = curl_init(); // 创建一个curl,它一直存在在这里
  90. // 要配置很多项。可以直接网上搜一个
  91. curl_setopt($ch, CURLOPT_URL ,'http://apis.juhe.cn/simpleWeather/query?key=abc4b64ae7656b460723402175a5650b&city=合肥');
  92. if($is_post == 0){
  93. if(!empty($data)){
  94. $url .= '?';
  95. foreach($data as $k=>$v){
  96. $url .= $k . '=' . $v . '&';
  97. }
  98. }
  99. }
  100. curl_setopt($ch, CURLOPT_URL ,$url);
  101. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0,则无限等待。
  102. curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 设置cURL允许执行的最长秒数。设置超时限制防止死循环
  103. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// 爬取重定向页面
  104. curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer,防止盗链
  105. curl_setopt($ch, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
  106. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// 要求结果保存到字符串中还是输出到屏幕上
  107. curl_setopt($ch, CURLOPT_USERAGENT, 'Data');// 在HTTP请求中包含一个"User-Agent: "头的字符串。
  108. curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); // 强制使用 HTTP/1.1
  109. if($is_post == 1){
  110. curl_setopt($ch, CURLOPT_POST, 1); // 这个请求是post
  111. curl_setopt($ch, CURLOPT_POSTFIELDS , $data);
  112. }
  113. $html = curl_exec($ch); // 去执行curl,并且打印出来,但是如果关闭了,就不会打印出来
  114. if(curl_errno($ch)){
  115. return curl_errno($ch);
  116. }
  117. curl_close($ch);
  118. return $html;
  119. }
  120. $data = [
  121. 'key' => 'abc4b64ae7656b460723402175a5650b',
  122. 'city' => '合肥'
  123. ];
  124. echo get_url('http://apis.juhe.cn/simpleWeather/query',$data);
  125. ?>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议