博客列表 >循环与网络请求

循环与网络请求

手机用户1631860753
手机用户1631860753原创
2021年10月17日 23:29:32609浏览

一.循环:计算循环

1.1 while循环

  • while 可以重复执行的一个循环
  • () 里面的条件可以是 >,>=,<= ; == 和 === 不行
  • 死循环 : 是说这个程序一直执行下去,不结束
  • while 先判断在执行
  • do while 先执行在判断
  • 例1:while(){}
  1. $int = 1;
  2. while($int < 10){
  3. echo '第'.$int.'次';
  4. echo '<hr>';
  5. $int++;
  6. }
  • 例2: do{}while();
  1. $int = 1;
  2. do{
  3. echo '第'.$int.'次';
  4. echo '<hr>';
  5. }while($int < 10);
  • 例1,例2输出

1.2 for 循环

  • for循环的()里面不只一个条件,里面有三个条件语句
  • 在写条件语句的时候符号不能用错了,不然可能会变成死循环
  • 在循环中要加 $int++; 不然会是死循环
  • 注意,如果赋值比较大,并且数字比后面的大,那么符号就要用 —
  • break 结束命令
  • continue 其中一条数据不能输出

  • 例 break ,循环5次

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

  • 例 continue 第5天休息

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

二.函数

  • 随机数函数
  • mt_rand 只能是数字
  • 例 随机颜色验证码示例php代码

    1. $code = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    2. for($i=0;$i<4;$i++){
    3. 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>';
    4. }
  • 输出随机不同颜色的4位验证码

  • 九九乘法表案例
  1. echo '<table border="1">';
  2. for ($i = 1; $i <= 9; $i++) {
  3. echo '<tr>';
  4. for ($y = 1; $y <= $i; $y++) {
  5. echo '<td>';
  6. echo $y . '*' . $i . '=' . $i * $y;
  7. echo '</td>';
  8. }
  9. echo '</tr>';
  10. }
  11. echo '</table>';
  • 效果

三.超级全局变量

  • $_GET 在网址上显示出来,在浏览器的收藏里面使用很方便
  • $_POST 不显示出来,这样做更安全
  • $_COOKIE , $_SESSION, 是缓存,保护用户信息的
  • $_FILES 文件上传信息
  • 如果传值是可以被别人看的就用,GET
  • 如果传值不能让别人看,比如账号,密码,等这种加密的东西,就用, POST
  • 要注意 POST 和 GET 和 COOKIE 会出现重复的下标
  • $_REQUEST: 一维数组:包含了$_POST ,$_GET, $_COOKIE

  • $GLOBALS 全部全局变量的组合,是二维数组

  • $_SERVER 服务器的环境,会使用里面的下标是时间戳,也会有函数获取时间戳
  • $_ENV 也是环境变量

四.预定义,常量

  • echo FILE 查看当前文件
  • echo DIR 查看当前目录
  • echo PHP_VERSION 查看当前PHP版本,设置后台管理程序,显示在后台,给开发者看的

五.网络请求

  • file() 把整个文件读入到一个数组中
  • file 可以抓取别人网页的数据
  • 我们的需求是需要网络请求的,就算不抓取别人的数据,也会用到别人的接口,只要用到第三方的功能,就会用到网络请求
  • curl 也是网络请求,我们用这个是1因为它可以使用 POST
  • 例 邮政编码查询
  1. function get_url($url, $data, $is_post = 0)
  2. {
  3. $ch = curl_init();
  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_TIMEOUT, 30); // 设置curl允许执行的时间
  14. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 爬取重定向页面
  15. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); // 在发起连接前等待的时间,如果设置为0 则无限等待
  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);
  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. $data = [
  33. 'key' => '385b74677e7c5538e5fdebcf3f4e7664',
  34. 'postcode' => '646200',
  35. 'pagesize' => '5'
  36. ];
  37. echo get_url('http://v.juhe.cn/postcode/query', $data);
  • 输出
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议