博客列表 >初识循环、超全局变量及 网络请求

初识循环、超全局变量及 网络请求

超超多喝水
超超多喝水原创
2021年10月17日 20:57:20500浏览

初识循环、超全局变量及 网络请求

while(){}循环

  • while(){}循环的括号内是判断条件,这里需要注意里面的条件需要是一个有限的条件,得让这个循环有机会结束,否则就会陷入死循环
  • do{}while()循环,是先执行后判断,无论条件如何他都会先执行一次
  1. //while
  2. $num = 10;
  3. while ($num <= 20) {
  4. echo $num;
  5. echo "<hr>";
  6. $num++;
  7. }
  8. //do while
  9. do {
  10. echo $num;
  11. echo "<hr>";
  12. $num++;
  13. } while ($num > 20);

for(){}循环

  • for 循环的括号内有三条语句,初始值,条件,初始值的运算
  • for 循环可以加 if 条件判断,判断中加入 break 使其达到终止的效果
  • for 循环可以加 if 条件判断,判断中加入 continue 使其达到跳过某一条件的效果
  • 结合 mt_rand()函数制作彩色验证码小案例
  1. <?php
  2. //自定义64位数据,验证码从其中产生数据
  3. $code = "12defghjABCDEFGHkmnpJKLMNPQRSTUWq3459abcdefgh6XYZ78jkmnpqwuvxyz";
  4. //生成彩色验证码
  5. for ($i = 0; $i <= 3; $i++) {
  6. @$num .= '<span style="color:rgb(' . mt_rand(0, 255) . "," . mt_rand(0, 255) . "," . mt_rand(0, 255) . '">' . $code[mt_rand(0, 63)] . '<span>';
  7. }
  8. ?>
  9. <!DOCTYPE html>
  10. <html lang="zh-CN">
  11. <head>
  12. <meta charset="UTF-8">
  13. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  14. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  15. <title>验证码</title>
  16. </head>
  17. <body>
  18. <?php echo $num ?>
  19. </body>
  20. </html>
  • 99 乘法表小案例
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  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>99乘法表</title>
  8. </head>
  9. <body>
  10. <table>
  11. <caption>99乘法表</caption>
  12. <tbody>
  13. <?php
  14. for ($i = 1; $i <= 9; $i++) {
  15. echo '<tr>';
  16. for ($j = $i; $j <= 9; $j++) {
  17. echo '<td style="border:1px solid">' . $i . '×' . $j . '=' . $i * $j . '</td>';
  18. }
  19. echo '</tr>';
  20. }
  21. ?>
  22. </tbody>
  23. </table>
  24. </body>
  25. </html>

超全局变量

  • $_GET() 获取 get 请求的内容,内容是方便在浏览器地址上显示出来的,在浏览器收藏里用很方便
  • $_POST() 获取 post 请求的内容,内容是不方便在浏览器地址上显示出来的,对密码等信息能做到比较好的加密
  • $_COOKIE与$_SESSION 用来存储缓存信息,用于保存用户信息
  • $_REQUEST()是一个一维数组,包含了$_POST、$_GET、$_COOKIE 等一切信息,这里需要注意 post、get、cookie 会出现重复下标
  • $GLOBALS 是二维数组,会对 get、post、cookie、file 等请求信息分别展示
  • $_SERVER 服务器环境的详细信息,一般会用到里面的请求时间,其值是时间戳
  • 预定义常量
    • __FILE__获取当前文件
    • __DIR__获取当前目录
    • PHP_VERSION 获取当前 PHP 版本

网络请求

常用较简单的两种方式

  • file()可以把整个文件读入到一个数组中
  • file_get_contents()可以将整个文件读入到一个字符串中

Curl 请求方式

Curl 请求方式功能更强大,也更为复杂,不仅可以进行 GET 请求,还可以进行 POST 请求

  1. $ch = curl_init();//创建curl,它一直存在在这里
  2. //curl_setopt($ch,CURLOPT系统常量(具体可查手册),"url地址");配置curl相关参数
  3. curl_setopt($ch,CURLOPT_URL,"http://apis.juhe.cn/simpleWeather/query");
  4. //curl可以进行post请求,这里以post请求为例
  5. curl_setopt($ch, CURLOPT_POST, 1); // 最后面的1代表这个请求是post请求
  6. $data = [
  7. 'key' => 'key0password',
  8. 'city' => '济南'
  9. ];
  10. // 如要下载一个文件可以设置CURLOPT_CONNECTTIMEOUT为10秒,也就是如果服务器10秒内没有响应,脚本就自动断开连接,然后CURLOPT_TIMEOUT可以设置为60,即如果文件1分钟内没有下完,脚本就自动断开连接。
  11. curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,3);//发起连接前等待的时间,如果设置为0,则无限等待,也就是这个是告诉php脚本在成功连接服务器前的等待时间的
  12. curl_setopt($ch,CURLOPT_TIMEOUT,30);//设置连接后超时的时间,防止死循环
  13. curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);//爬取重定向页面内容
  14. curl_setopt($ch,CURLOPT_AUTOREFERER,1);//自动设置Referer,用作防盗链
  15. curl_setopt($ch,CURLOPT_HEADER,0);//显示返回的Header区域的内容
  16. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//设置结果是保存到字符串中还是直接输出到屏幕,1是保存到字符串中,这样在封装好自定义函数后close关闭curl后就不会继续输出到屏幕,就可以使用return返回
  17. curl_setopt($ch,CURLOPT_USERAGENT,'Data');//在HTTP请求中包含一个“User-Agent: "头的字符串
  18. curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);//强制使用HTTP/1.1
  19. $html = curl_exec($ch);
  20. curl_close($ch);
  21. echo $html;//因为上面的代码中已经限制了close后不直接输出到屏幕,因此需要输出一下
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议