Blogger Information
Blog 16
fans 0
comment 0
visits 16192
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
while和for循环、post提交与curl网络请求
Leo的博客
Original
1061 people have browsed it

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. ?>
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