1. <?php
  2. echo date("Y/m/d") . "<br>";
  3. echo date("Y.m.d") . "<br>";
  4. echo date("Y-m-d");
  5. ?>

  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <?php include 'header.php'; ?>
  9. <h1>欢迎来到我的主页!</h1>
  10. <p>一些文本。</p>
  11.  
  12. </body>
  13. </html>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <div class="leftmenu">
  9. <?php include 'menu.php'; ?>
  10. </div>
  11. <h1>欢迎来到我的主页!</h1>
  12. <p>一些文本。</p>
  13.  
  14. </body>
  15. </html>
  1. <?php
  2. $color='red';
  3. $car='BMW';
  4. ?>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <h1>欢迎来到我的主页!</h1>
  9. <?php
  10. include 'vars.php';
  11. echo "I have a $color $car"; // I have a red BMW
  12. ?>
  13.  
  14. </body>
  15. </html>
  1. <html>
  2. <body>
  3.  
  4. <?php
  5. $file=fopen("welcome.txt","r");
  6. ?>
  7.  
  8. </body>
  9. </html>
  1. <html>
  2. <body>
  3.  
  4. <?php
  5. $file=fopen("welcome.txt","r") or exit("Unable to open file!");
  6. ?>
  7.  
  8. </body>
  9. </html>
  1. <?php
  2. $file = fopen("test.txt","r");
  3.  
  4. //执行一些代码
  5.  
  6. fclose($file);
  7. ?>
  1. <?php
  2. $file = fopen("welcome.txt", "r") or exit("无法打开文件!");
  3. // 读取文件每一行,直到文件结尾
  4. while(!feof($file))
  5. {
  6. echo fgets($file). "<br>";
  7. }
  8. fclose($file);
  9. ?>
  1. <?php
  2. $file=fopen("welcome.txt","r") or exit("无法打开文件!");
  3. while (!feof($file))
  4. {
  5. echo fgetc($file);
  6. }
  7. fclose($file);
  8. ?>
  1. <?php
  2. // 允许上传的图片后缀
  3. $allowedExts = array("gif", "jpeg", "jpg", "png");
  4. $temp = explode(".", $_FILES["file"]["name"]);
  5. echo $_FILES["file"]["size"];
  6. $extension = end($temp); // 获取文件后缀名
  7. if ((($_FILES["file"]["type"] == "image/gif")
  8. || ($_FILES["file"]["type"] == "image/jpeg")
  9. || ($_FILES["file"]["type"] == "image/jpg")
  10. || ($_FILES["file"]["type"] == "image/pjpeg")
  11. || ($_FILES["file"]["type"] == "image/x-png")
  12. || ($_FILES["file"]["type"] == "image/png"))
  13. && ($_FILES["file"]["size"] < 204800) // 小于 200 kb
  14. && in_array($extension, $allowedExts))
  15. {
  16. if ($_FILES["file"]["error"] > 0)
  17. {
  18. echo "错误:: " . $_FILES["file"]["error"] . "<br>";
  19. }
  20. else
  21. {
  22. echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
  23. echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
  24. echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  25. echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";
  26.  
  27. // 判断当期目录下的 upload 目录是否存在该文件
  28. // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
  29. if (file_exists("upload/" . $_FILES["file"]["name"]))
  30. {
  31. echo $_FILES["file"]["name"] . " 文件已经存在。 ";
  32. }
  33. else
  34. {
  35. // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
  36. move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);
  37. echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];
  38. }
  39. }
  40. }
  41. else
  42. {
  43. echo "非法的文件格式";
  44. }
  45. ?>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <form action="upload_file.php" method="post" enctype="multipart/form-data">
  9. <label for="file">文件名:</label>
  10. <input type="file" name="file" id="file"><br>
  11. <input type="submit" name="submit" value="提交">
  12. </form>
  13.  
  14. </body>
  15. </html>
  1. <?php
  2. if ($_FILES["file"]["error"] > 0)
  3. {
  4. echo "错误:" . $_FILES["file"]["error"] . "<br>";
  5. }
  6. else
  7. {
  8. echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
  9. echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
  10. echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  11. echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
  12. }
  13. ?>
  1. <?php
  2. // 允许上传的图片后缀
  3. $allowedExts = array("gif", "jpeg", "jpg", "png");
  4. $temp = explode(".", $_FILES["file"]["name"]);
  5. $extension = end($temp); // 获取文件后缀名
  6. if ((($_FILES["file"]["type"] == "image/gif")
  7. || ($_FILES["file"]["type"] == "image/jpeg")
  8. || ($_FILES["file"]["type"] == "image/jpg")
  9. || ($_FILES["file"]["type"] == "image/pjpeg")
  10. || ($_FILES["file"]["type"] == "image/x-png")
  11. || ($_FILES["file"]["type"] == "image/png"))
  12. && ($_FILES["file"]["size"] < 204800) // 小于 200 kb
  13. && in_array($extension, $allowedExts))
  14. {
  15. if ($_FILES["file"]["error"] > 0)
  16. {
  17. echo "错误:: " . $_FILES["file"]["error"] . "<br>";
  18. }
  19. else
  20. {
  21. echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";
  22. echo "文件类型: " . $_FILES["file"]["type"] . "<br>";
  23. echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  24. echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];
  25. }
  26. }
  27. else
  28. {
  29. echo "非法的文件格式";
  30. }
  31. ?>
  1. <?php
  2. // 输出 cookie 值
  3. echo $_COOKIE["user"];
  4.  
  5. // 查看所有 cookie
  6. print_r($_COOKIE);
  7. ?>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. if (isset($_COOKIE["user"]))
  10. echo "欢迎 " . $_COOKIE["user"] . "!<br>";
  11. else
  12. echo "普通访客!<br>";
  13. ?>
  14.  
  15. </body>
  16. </html>
  1. <?php
  2. // 设置 cookie 过期时间为过去 1 小时
  3. setcookie("user", "", time()-3600);
  4. ?>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <form action="welcome.php" method="post">
  9. 名字: <input type="text" name="name">
  10. 年龄: <input type="text" name="age">
  11. <input type="submit">
  12. </form>
  13.  
  14. </body>
  15. </html>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. 欢迎 <?php echo $_POST["name"]; ?>.<br>
  9. <?php echo $_POST["age"]; ?> 岁了。
  10.  
  11. </body>
  12. </html>
  1. <?php
  2. session_start();
  3. // 存储 session 数据
  4. $_SESSION['views']=1;
  5. ?>
  6.  
  7. <html>
  8. <head>
  9. <meta charset="utf-8">
  10. <title>菜鸟教程(runoob.com)</title>
  11. </head>
  12. <body>
  13.  
  14. <?php
  15. // 检索 session 数据
  16. echo "浏览量:". $_SESSION['views'];
  17. ?>
  18.  
  19. </body>
  20. </html>
  1. <?php
  2. session_start();
  3.  
  4. if(isset($_SESSION['views']))
  5. {
  6. $_SESSION['views']=$_SESSION['views']+1;
  7. }
  8. else
  9. {
  10. $_SESSION['views']=1;
  11. }
  12. echo "浏览量:". $_SESSION['views'];
  13. ?>
  1. <?php
  2. session_start();
  3. if(isset($_SESSION['views']))
  4. {
  5. unset($_SESSION['views']);
  6. }
  7. ?>
  1. <?php
  2. session_destroy();
  3. ?>
  1. <?php
  2. $to = "someone@example.com"; // 邮件接收者
  3. $subject = "参数邮件"; // 邮件标题
  4. $message = "Hello! 这是邮件的内容。"; // 邮件正文
  5. $from = "someonelse@example.com"; // 邮件发送者
  6. $headers = "From:" . $from; // 头部信息设置
  7. mail($to,$subject,$message,$headers);
  8. echo "邮件已发送";
  9. ?>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7.  
  8. <?php
  9. if (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件
  10. // 发送邮件
  11. $email = $_REQUEST['email'] ;
  12. $subject = $_REQUEST['subject'] ;
  13. $message = $_REQUEST['message'] ;
  14. mail("someone@example.com", $subject,
  15. $message, "From:" . $email);
  16. echo "邮件发送成功";
  17. } else { // 如果没有邮箱参数则显示表单
  18. echo "<form method='post' action='mailform.php'>
  19. Email: <input name='email' type='text'><br>
  20. Subject: <input name='subject' type='text'><br>
  21. Message:<br>
  22. <textarea name='message' rows='15' cols='40'>
  23. </textarea><br>
  24. <input type='submit'>
  25. </form>";
  26. }
  27. ?>
  28.  
  29. </body>
  30. </html>
  1. <html>
  2. <head>
  3. <meta charset="utf-8">
  4. <title>菜鸟教程(runoob.com)</title>
  5. </head>
  6. <body>
  7. <?php
  8. function spamcheck($field)
  9. {
  10. // filter_var() 过滤 e-mail
  11. // 使用 FILTER_SANITIZE_EMAIL
  12. $field=filter_var($field, FILTER_SANITIZE_EMAIL);
  13.  
  14. //filter_var() 过滤 e-mail
  15. // 使用 FILTER_VALIDATE_EMAIL
  16. if(filter_var($field, FILTER_VALIDATE_EMAIL))
  17. {
  18. return TRUE;
  19. }
  20. else
  21. {
  22. return FALSE;
  23. }
  24. }
  25.  
  26. if (isset($_REQUEST['email']))
  27. {
  28. // 如果接收到邮箱参数则发送邮件
  29.  
  30. // 判断邮箱是否合法
  31. $mailcheck = spamcheck($_REQUEST['email']);
  32. if ($mailcheck==FALSE)
  33. {
  34. echo "非法输入";
  35. }
  36. else
  37. {
  38. // 发送邮件
  39. $email = $_REQUEST['email'] ;
  40. $subject = $_REQUEST['subject'] ;
  41. $message = $_REQUEST['message'] ;
  42. mail("someone@example.com", "Subject: $subject",
  43. $message, "From: $email" );
  44. echo "Thank you for using our mail form";
  45. }
  46. }
  47. else
  48. {
  49. // 如果没有邮箱参数则显示表单
  50. echo "<form method='post' action='mailform.php'>
  51. Email: <input name='email' type='text'><br>
  52. Subject: <input name='subject' type='text'><br>
  53. Message:<br>
  54. <textarea name='message' rows='15' cols='40'>
  55. </textarea><br>
  56. <input type='submit'>
  57. </form>";
  58. }
  59. ?>
  60.  
  61. </body>
  62. </html>
  1. <?php
  2. // 错误处理函数
  3. function customError($errno, $errstr)
  4. {
  5. echo "<b>Error:</b> [$errno] $errstr<br>";
  6. echo "脚本结束";
  7. die();
  8. }
  9.  
  10. // 设置错误处理函数
  11. set_error_handler("customError",E_USER_WARNING);
  12.  
  13. // 触发错误
  14. $test=2;
  15. if ($test>1)
  16. {
  17. trigger_error("变量值必须小于等于 1",E_USER_WARNING);
  18. }
  19. ?>

  1. <?php
  2. // 错误处理函数
  3. function customError($errno, $errstr)
  4. {
  5. echo "<b>Error:</b> [$errno] $errstr<br>";
  6. echo "已通知网站管理员";
  7. error_log("Error: [$errno] $errstr",1,
  8. "someone@example.com","From: webmaster@example.com");
  9. }
  10.  
  11. // 设置错误处理函数
  12. set_error_handler("customError",E_USER_WARNING);
  13.  
  14. // 触发错误
  15. $test=2;
  16. if ($test>1)
  17. {
  18. trigger_error("变量值必须小于等于 1",E_USER_WARNING);
  19. }
  20. ?>

  1. <?php
  2. // 创建一个有异常处理的函数
  3. function checkNum($number)
  4. {
  5. if($number>1)
  6. {
  7. throw new Exception("变量值必须小于等于 1");
  8. }
  9. return true;
  10. }
  11.  
  12. // 在 try 块 触发异常
  13. try
  14. {
  15. checkNum(2);
  16. // 如果抛出异常,以下文本不会输出
  17. echo '如果输出该内容,说明 $number 变量';
  18. }
  19. // 捕获异常
  20. catch(Exception $e)
  21. {
  22. echo 'Message: ' .$e->getMessage();
  23. }
  24. ?>

  1. <?php
  2. class customException extends Exception
  3. {
  4. public function errorMessage()
  5. {
  6. // 错误信息
  7. $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile()
  8. .': <b>'.$this->getMessage().'</b> 不是一个合法的 E-Mail 地址';
  9. return $errorMsg;
  10. }
  11. }
  12.  
  13. $email = "someone@example...com";
  14.  
  15. try
  16. {
  17. // 检测邮箱
  18. if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
  19. {
  20. // 如果是个不合法的邮箱地址,抛出异常
  21. throw new customException($email);
  22. }
  23. }
  24.  
  25. catch (customException $e)
  26. {
  27. //display custom message
  28. echo $e->errorMessage();
  29. }
  30. ?>
  1. <?php
  2. $int = 123;
  3.  
  4. if(!filter_var($int, FILTER_VALIDATE_INT))
  5. {
  6. echo("不是一个合法的整数");
  7. }
  8. else
  9. {
  10. echo("是个合法的整数");
  11. }
  12. ?>
  1. <?php
  2. $var=300;
  3.  
  4. $int_options = array(
  5. "options"=>array
  6. (
  7. "min_range"=>0,
  8. "max_range"=>256
  9. )
  10. );
  11.  
  12. if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
  13. {
  14. echo("不是一个合法的整数");
  15. }
  16. else
  17. {
  18. echo("是个合法的整数");
  19. }
  20. ?>
  1. <?php
  2. if(!filter_has_var(INPUT_GET, "email"))
  3. {
  4. echo("没有 email 参数");
  5. }
  6. else
  7. {
  8. if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
  9. {
  10. echo "不是一个合法的 E-Mail";
  11. }
  12. else
  13. {
  14. echo "是一个合法的 E-Mail";
  15. }
  16. }
  17. ?>
  1. <?php
  2. $filters = array
  3. (
  4. "name" => array
  5. (
  6. "filter"=>FILTER_SANITIZE_STRING
  7. ),
  8. "age" => array
  9. (
  10. "filter"=>FILTER_VALIDATE_INT,
  11. "options"=>array
  12. (
  13. "min_range"=>1,
  14. "max_range"=>120
  15. )
  16. ),
  17. "email"=> FILTER_VALIDATE_EMAIL
  18. );
  19.  
  20. $result = filter_input_array(INPUT_GET, $filters);
  21.  
  22. if (!$result["age"])
  23. {
  24. echo("年龄必须在 1 到 120 之间。<br>");
  25. }
  26. elseif(!$result["email"])
  27. {
  28. echo("E-Mail 不合法<br>");
  29. }
  30. else
  31. {
  32. echo("输入正确");
  33. }
  34. ?>
  1. <?php
  2. function convertSpace($string)
  3. {
  4. return str_replace("_", ".", $string);
  5. }
  6.  
  7. $string = "www_runoob_com!";
  8.  
  9. echo filter_var($string, FILTER_CALLBACK,
  10. array("options"=>"convertSpace"));
  11. ?>
  1. <?php
  2. $int = 122;
  3. $min = 1;
  4. $max = 200;
  5.  
  6. if (filter_var($int, FILTER_VALIDATE_INT, array("options" => array("min_range"=>$min, "max_range"=>$max))) === false) {
  7. echo("变量值不在合法范围内");
  8. } else {
  9. echo("变量值在合法范围内");
  10. }
  11. ?>
  1. <?php
  2. $ip = "2001:0db8:85a3:08d3:1319:8a2e:0370:7334";
  3.  
  4. if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) {
  5. echo("$ip 是一个 IPv6 地址");
  6. } else {
  7. echo("$ip 不是一个 IPv6 地址");
  8. }
  9. ?>
  1. <?php
  2. $url = "http://www.runoob.com";
  3.  
  4. if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) {
  5. echo("$url 是一个合法的 URL");
  6. } else {
  7. echo("$url 不是一个合法的 URL");
  8. }
  9. ?>
  1. <?php
  2. $str = "<h1>Hello WorldÆØÅ!</h1>";
  3.  
  4. $newstr = filter_var($str, FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_HIGH);
  5. echo $newstr;
  6. ?>
  1. <?php
  2. $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
  3. echo json_encode($arr);
  4. ?>
  1. <?php
  2. class Emp {
  3. public $name = "";
  4. public $hobbies = "";
  5. public $birthdate = "";
  6. }
  7. $e = new Emp();
  8. $e->name = "sachin";
  9. $e->hobbies = "sports";
  10. $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
  11. $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
  12.  
  13. echo json_encode($e);
  14. ?>
  1. <?php
  2. $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
  3.  
  4. var_dump(json_decode($json));
  5. var_dump(json_decode($json, true));
  6. ?>

吴裕雄--天生自然 PHP开发学习:高级的更多相关文章

  1. 吴裕雄--天生自然Android开发学习:1.2 开发环境搭建

    现在主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio + SDK ③IntelliJ IDEA + SDK 现在国内大部分开发人员还是使用的E ...

  2. 吴裕雄--天生自然 PHP开发学习:echo 和 print 语句

    <?php echo "<h2>PHP 很有趣!</h2>"; echo "Hello world!<br>"; ec ...

  3. 吴裕雄--天生自然 JAVA开发学习:基础语法

    package test; public class temp { /* 第一个Java程序 * 它将打印字符串 Hello World */ public static void main(Stri ...

  4. 吴裕雄--天生自然 JAVA开发学习:变量类型

    public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 pu ...

  5. 吴裕雄--天生自然 PYTHON3开发学习:MySQL - mysql-connector 驱动

    import mysql.connector mydb = mysql.connector.connect( host="localhost", # 数据库主机地址 user=&q ...

  6. 吴裕雄--天生自然 JAVASCRIPT开发学习:对象 实例(2)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 吴裕雄--天生自然Android开发学习:1.2.1 使用Eclipse + ADT + SDK开发Android APP

    1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本 ...

  8. 吴裕雄--天生自然Android开发学习:Android studio 3.5安装详解

    3. 建立AVD(安卓虚拟设备) 点击右上角AVD Manager图标,单击按钮Create Virtual Device,选择Nexus 5X,下一步,选择版本9.0,Download,然后Next ...

  9. 吴裕雄--天生自然Android开发学习:android 背景相关与系统架构分析

    1.Android背景与当前的状况 Android系统是由Andy Rubin创建的,后来被Google收购了:最早的版本是:Android 1.1版本 而现在最新的版本是今年5.28,Google ...

随机推荐

  1. Java笔记: protected的真正含义

    关于protected关键字,即使是Java初学者也能够说出它的含义:protected修饰的成员可以被子类访问.但是这样理解并不完全准确,下面考虑它的真正含义. Java访问控制回顾 Java语言定 ...

  2. Java singleton 单例

    饿汉式,instance在类加载化时完成初始化,线程安全 package cookie; public class SingletonAtOnce { private SingletonAtOnce( ...

  3. Spark RDD 宽窄依赖

    RDD 宽窄依赖 RDD之间有一系列的依赖关系, 可分为窄依赖和宽依赖 窄依赖 从 RDD 的 parition 角度来看 父 RRD 的 parition 和 子 RDD 的 parition 之间 ...

  4. 吴裕雄--天生自然C++语言学习笔记:C++ 标准库

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  5. 吴裕雄--天生自然C++语言学习笔记:C++ 信号处理

    信号是由操作系统传给进程的中断,会提早终止一个程序.在 UNIX.LINUX.Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断. 有些信号不能被程序捕获,但是下表所列信 ...

  6. PGSQL基本操作语句

    ; --更新数据 ,,) ; --插入数据 ORDER BY app_name,flag asc/desc ; --查询数据并且排序 offset ; --查询起点0开始查询,返回5条数据 ORDER ...

  7. 基于Ambari Server部署HDP集群实战案例

    基于Ambari Server部署HDP集群实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署Ambari Server端 博主推荐阅读: https://www.c ...

  8. Spring入门之二-------SpringIoC之实例化Bean以及注入Bean

    一.实例化Bean 1. 通过默认构造方法实创建Bean public class Bean1 { public Bean1() { System.out.println(this.getClass( ...

  9. 从零开始Windows环境下安装python+tensorflow

    从零开始Windows环境下安装python+tensorflow 2017年07月12日 02:30:47 qq_16257817 阅读数:29173 标签: windowspython机器学习te ...

  10. BZOJ 4901 [CTSC2017]网络

    题解: 只会O(n log^2 n) O(n log n)先留坑 不开long long 0 分!!!! #include<iostream> #include<cstdio> ...