zoukankan      html  css  js  c++  java
  • PHP入门

    第1章 PHP语言介绍

    1.什么是PHP

    1.外文名PHP:Hypertext Preprocessor,中文名:“超文本预处理器”是一种通用开源脚本语言。
    2.语法吸收了C语言、java和Perl的特点,利于学习,使用广泛,主要适用于web开发领域。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
    3.PHP入门简单,学习入门易入手。
    

    2.什么是静态页面和动态页面

    1.页面信息发布后内容固定不变,没有交互,常见以HTML结尾的就是静态页面,比如新闻发布网站。
    2.页面有交互,需要去数据库里取数据再返回给用户的就是动态页面。
    

    3.HTTP请求方法

    4.HTTP常见状态码

    4.用户访问网站的流程

    1.用户输入域名->浏览器跳转->浏览器缓存->Hosts 文件->DNS 解析( 递归查询 | 迭代查询 )
    客户端向服务端发起查询->递归查询
    服务端向服务端发起查询->迭代查询
    2.由浏览器向服务端发起 TCP 连接(三次握手)
    客户端 -->请求包连接-syn=1 seq=x 服务端
    服务端 -->向应客户端 syn=1 ack=x+1 seq=y 客户端
    客户端 -->建立连接 ack=y+1 seq=x+1 服务端
    3.客户端发起 http 请求:
    1.请求的方法是什么: Get 获取
    2.请求的 Host 主机是: www.oldboyedu.com
    3.请求的资源是什么: /index.html
    4.请求的端口是什么: 默认 http 是 80 https 443
    5.请求携带的参数是: 属性(请求的类型、压缩、认证、浏览器信息、等等)
    6.请求最后的空行
    4.服务端响应的内容是
    1.服务端响应使用的 WEB 服务软件
    2.服务端响应请求文件的类型
    3.服务端响应请求的文件是否进行压缩
    4.服务端响应请求的主机是否进行长连接
    5.客户端向服务端发起 TCP 断开(四次挥手)
    客户端 --> 断开请求 fin=1 seq=x --> 服务端
    服务端 --> 响应断开 fin=1 ack=x+1 seq=y --> 客户端
    服务端 --> 断开连接 fin=1 ack=x+1 seq=z --> 客户端
    客户端 --> 确认断开 fin=1 ack=z+1 seq=sj --> 服务端
    

    第2章 PHP安装部署

    1.集成环境phpstudy安装

    官方网站:

    http://www.phpstudy.net/
    

    2.代码工具PHPstorm安装

    安装参考网站:

    https://www.jetbrains.com/phpstorm
    

    破解:

    https://www.bilibili.com/read/cv7319471/
    

    第3章 PHP基本语法

    1.PHP基本函数

    编写info.php页面,代码如下

    <?php
      phpinfo();
    ?>
    

    在浏览器输入你的IP地址然后访问,如果出现以下页面则表示PHP工作正常。

    代码解释:

    1.phpinfo是一个函数(功能),这个函数会显示一个当前电脑(服务器)的详细的PHP信息。
    2.电脑是一个很笨的东西,需要我们人为的告诉他,代码写完了。我们用分号(;)来告诉他代码写完了。因此只要写完一段代码,就需要在后面加分号。
    3.而前后两行的回车空行,是为了让代码更加好看,避免叠在一起,看着不舒服。其实中间有多少个回车空行都没有关系的,保证好看就行了。PHP的语法解释器(PHP最核心部分)不会处理这些空行的。
    

    代码编写注意:

    1.PHP的代码信息全部要用半角的英文、很多人容易写成全角的英文/中文和符号造成PHP代码报错。
    2.PHP代码的最后一行可以加也可不加分号。由于很多学习者特别是初学者经常犯一个毛病,写完一行代码不加分号,因此容易犯错,某些公司规定一行代码写完,就必须加分号。
    3.我们在写文件test.php这个文件命名的时候,只要英文半角(a-z A-Z 0-9 _-)这些字符来命名文件,文件命名不要用中文,不要用特殊符号,不要中间加空格,严格区分大小。
    

    2.PHP变量与常量

    2.1 变量

    创建test01.php并写入以下代码:

    <?php
      $iphone12 = 5880;
      $iphone12mini = 6088;
      echo $iphone12 + $iphone12mini;  //echo是在PHP里面最常用的一个输出、显示功能的命令
    ?>
    

    变量的命名注意:

    1.必须要以$开始,如变量x必须要写成$x
    2.变量的首字母不能以数字开始
    3.变量的名字区分大小写
    4.变量不要用特殊符号、中文,_不算特殊符号
    5.变量命名要有意义(别写xxx,aaa,ccc)这种变量名
    

    变量的分类:

    可变变量
    外部变量
    环境变量
    

    2.2 可变变量

    <?php
      header('Content-type:text/html;charset=utf-8'); // 服务器读取的  编码设置
      $son_name = 'father_name'; //定义了一个变量"儿子的姓",值是"爸爸的姓"。
      $father_name = 'zhang';  //定义了一个变量"爸爸的姓",值是"zhang"。
      echo $$son_name; //输出儿子姓什么,儿子跟随爸爸的姓。
    ?>
    

    2.3 外部变量

    html代码:

    <html>
    <body>
    <!-- 这一行method 对应的值改为post --->
    <form action="bianliang.php" method="post">
        <input type="text" name="username"/>
        <input type="password" name="pwd"/>
        <input type="submit" name="提交"/>
    </form>
    </body>
    </html>
    

    php代码:

    <?php
      header('Content-type:text/html;charset=utf-8');
      //$_POST[‘username’],将username作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”username”/>的值
      $user = $_POST['username'];
      echo $u.'<br />';
      //$_POST[‘pwd’],将pwd作为字符串放在中括号里面,就得到了表单里面的<input type=”text”name=”pwd”/>的值
      $passwd = $_POST['pwd'];
      echo '用户名:'.$user.'<br>';
      echo '密码:'.$passwd.'<br>';
    ?>
    

    2.4 环境变量

    <?php
      echo '请求方法: '.$_SERVER["REQUEST_METHOD"].'<br>';
      echo '请求的URI: '.$_SERVER["REQUEST_URI"].'<br>';
      echo '服务程序: '.$_SERVER["SERVER_SOFTWARE"].'<br>';
      echo '客户端IP: '.$_SERVER["REMOTE_ADDR"].'<br>';
      echo '服务端IP: '.$_SERVER["SERVER_ADDR"].'<br>';
      echo '文件路径: '.$_SERVER["SCRIPT_FILENAME"].'<br>';
      echo '浏览器类型: '.$_SERVER["HTTP_USER_AGENT"].'<br>';
      echo '跳转页面: '.$_SERVER["HTTP_REFERER"].'<br>';
      echo '当前时间: '.$_SERVER["REQUEST_TIME"].'<br>';
    ?>
    

    2.5 常量

    格式说明:

    常量就是长久不变的值,常量在代码中的定义,以及书写方式如下所示:
    define(常量名, 常量值)
    

    格式注意:

    1.常量名可以小写,但是通常大写
    2.常量名可以不加引号,但是通常加上引号
    3.在字符串中调用常量的时候,必须在引号外面
    4.常量名建议只用字母和下划线
    

    实验代码:

    <?php
    define('MY_NAME','PHP中文网');
    echo MY_NAME;
    //下面是错误的调用方式
    echo '我的名字是MY_NAME';
    //下面是正确的调用方式
    echo '我的名字是'.MY_NAME;
    

    3.PHP注释信息

    3.1 什么是注释

    1.因为代码是英文的,并且代码很长,时间长了人会忘了代码的意思作用,所以可以加上注释进行说明提示。
    2.对重点进行标注
    3.可以让其他人更容易看懂配置信息
    4.拥有注释、空行、回车之后的代码看起来更优美
    5.注释可用来排错,不确定代码中哪一块写错了,可以将一大段注释掉,确定错误区域。
    6.注释中的部分的内容,电脑不会执行它
    

    3.2 单行注释

    <?php
      //声明异步iphone12手机的价格变量
      $iphone12 = 6000;
      //显示输出收集价格
      echo $iphone12; 
    ?>
    

    3.3 多行注释

    <?php
      /*
      作者:PHP中文网
      时间:2020.01.01
      功能:这是一个多行注释例子
      */
    ?>
    
    

    4.PHP数据类型

    4.1 什么是数据类型

    数据类型就是对数据分类的一种划分方式而已,例如以下举例说明:
    哺乳动物:人、猫、马、鸭嘴兽…等等
    蔬菜类型:西红柿、菠菜、茄子…等等
    水果类型:西瓜、桃子、苹果…等等
    

    4.2 PHP中的数据类型

    序号 数据类型 数据类型描述
    1 boolean(布尔类型) 布尔型是简单的数据类型,只有两个值false(假)和true(真)
    2 string(字符串型) 字符串就是连续的字符序列,如echo“string”
    3 integer(整形) 整形数据类型只能包含整数,这些数据类型可以是负数或者整数
    4 float/double(浮点型) 浮点类型用于存储数字,和整形不同的是浮点型可以有小数点
    5 array(数组类型) 一组相同类型的集合
    6 object(对象类型) 对象是一个实例,使用new命令创建一个对象
    7 resource(资源型) 资源是一种特殊的变量,保存在外部资源的一个应用,资源是通过函数来进行建立的
    8 null(空白) 特殊的值,表示变量没有值,任何变量的初始值都是null

    4.3 整数类型

    整形表示即为整数,英文称之为integer,英文简写为int;
    整形分为8进制、10进制、16进制,整形在计算机里面是有最大值和最小值范围的。
    大家经常听说32位计算机,也就是32位计算机一次运算处理的最大范围是-2的32次方到2的32次方-1;
    而64位计算机,就是一次运算处理的最大范围是-2的64次方到2的64次方-1。
    

    4.4 布尔类型

    布尔类型解释:

    所谓布尔类型,汉语翻译过来之后,更好的解释是用道家中易经的语言进行解释,即为:阴/阳,男/女,真/假,对/错,存在/不存在,0/1等等。
    

    举例说明:

    <?php
      $buer=true;  //声明一个变量(拼音)为布尔类型
      $bool=false;  //声明一个变量(英文)为布尔类型
    ?>
    

    4.5 字符串类型

    字符串类型说明:

    在PHP语言中声明字符串有三种方式:
    1.用单引号声明
    2.用双引号声明
    3.用字界符声明
    

    单引号举例:

    <?php
      $zifu='万事开头难,然后中间难,最后结尾难';
      echo $zifu;
    ?>
    

    双引号举例:

    <?php
      $str="努力了这么久,但凡有点儿天赋,也该有些成功迹象了";
      echo $str;
    ?>
    

    字界符举例:

    <?php
    $dingjie = <<<ABC
      那天班长说要和我<font size="20">试试!</font><br>
    我说<small>可以。</small><br>
      我一说,<br>
    他<font size="20" color="#ff7f50">啪</font>就站起来了,<font size="20" color="#6495ed"><i>很快啊!</i></font><br>
    我大意了啊,没有闪。<br>
    他忙说对不起对不起,我不懂规矩啊,他说他是<font size="8"><del>故意</del></font> 乱打的。<br>
    他可不是乱打的啊,铮铮鞭腿左刺拳训练有素,后来他说他练过醉拳,看来是有备而来。<br>
    这个年轻人,<font size="20">不讲武德!</font><br>
    来偷袭!我这个<font size="18" color="#dc143c">29岁的老同志。</font>  <br>
    这好吗?这不好。 <br>
    我劝这位年轻人, <br>
    <font size="10" color="#ff7f50">好自为之!好好反思! </font> <br>
    以后不要再犯这样的小聪明。 <br>
    ABC;
    echo $dingjie
    ?>
    

    单引号和双引号的区别

    1.双引号解析变量,但是单引号不解析变量
    2.在双引号里面插入变量,变量后面如果有英文或中文字符,会把这个字符和变量拼起来,视为一整个变量。一定要在变量后面接上特殊字符,例如空格等分开。
    3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
    4.双引号解析转义字符,单引号不解析转义字符。但是单引号能解析
    5.单引号效率高于双引号,尽可能使用单引号
    6.双引号和单引号可以互相嵌套,双引号中可以插入单引号,单引号当中插入变量,这个变量会被解析。
    7.神奇的字符串拼接胶水——(.)点,用来拼接字符串。
    8.一般将定界符声明字符串视为双引号一样的功能来看待。
    

    4.6 浮点类型

    <?php
      $fudian=12121.3232;
      echo $fudian;
    ?>
    

    4.7 数据类型的查看

    查看数据类型:

    gettype(传入一个变量)输出变量的类型
    var_dump(传入一个变量)输出变量类型和值
    

    举例:

    <?php
      $float = 88.8;
      $type = gettype($float);
      echo $type;
    
      $str = '你喜欢男人还是喜欢女人';
      $type = var_dump($str);
      echo $type;
    ?>
    

    4.8 数据类型的判断

    判断数据类型说明:

    使用is_*系列函数,is_types这一系列的函数,来进行判断某个数据属于哪种类型,如果是这个类型返回真,不是这个类型返回假。
    
    序号 判断函数 函数判断描述
    1 is_int 判断是否为整数数据类型
    2 is_bool 判断是否为布尔数据类型
    3 is_float 判断是否是浮点数据类型
    4 is_string 判断是否是字符串数据类型
    5 is_array 判断是否是数组数据类型
    6 is_object 判断是否是对象数据类型
    7 is_null 判断数据信息是否为空
    8 is_resource 判断是否为资源数据类型
    9 is_scalar 判断是否为标量
    10 is_numeric 判断是否为数值类型
    11 is_callable 判断是否为函数

    举例:

    <?php
      //is_*系列函数有个特点,就是如果是这个类型的返回的值为真,不是这个数据类型就返回的是假
      //声明类型为假
      $fo = false;
      if (is_bool($fo)) {
          echo '执行真区间';
      }else{
          echo '执行假区间';
      }
      echo "<br />";
      
      //检查未声明的变量$p是否为空,为空就执行真区间
      if(is_null($p)) {
          echo '执行真区间';
      }else{
          echo '执行假区间';
      }
      echo "<br />";
      
      //字符串类型的数值,检查执行的真还是假
      $str = '18.8';
      if(is_numeric($str)) {
          echo '执行真区间';
      }else{
          echo '执行假区间';
      }
      echo "<br />";
      
      //把sca的值换为整数 浮点 布尔和字符串试试
      $sca = true;
      if(is_scalar($sca)) {
          echo '执行真区间';
      }else{
          echo '执行假区间';
      }
      echo "<br />";
      
      //换成echo,is_int试试,为什么echo执行假区间呢?
      if(is_callable('var_dump')) {
          echo '执行真区间';
      }else{
          echo '执行假区间';
      }
      echo "<br />";
    ?>
    

    5.PHP算数运算

    5.1 运算符号说明

    符号信息 说明 举例说明
    + 表示相加符号 $x+$y
    - 表示相减符号 $x-$y
    * 表示相乘符号 $x*$y
    / 表示相除符号 $x/$y
    % 表示取余或取模符号 $x%$y

    举例:

    <?php
      $x=5;
      $y=6;
      echo $x+$y;
    ?>
    

    5.2 自加自减运算

    符号信息 说明
    $x++ 表示先赋值后累加运算
    $x-- 表示先赋值后求差运算
    ++$x 表示先累加运算后赋值
    --$x 表示先求差运算后赋值

    举例:

    <?php
      $x=10;
      echo ++$x; // 输出11
      echo $y;
    
      $y=10;
      echo $y++; // 输出10
      echo $y;
    ?>
    

    5.3 比较运算符

    符号信息 说明
    > 表示大于符号
    < 表示小于符号
    >= 表示大于等于符号
    <= 表示小于等于符号
    == 表示等于符号
    != 表示不等于符号
    === 表示全等(判断类型等于)
    !== 表示全不等(判断类型不等于)

    举例:

    <?php
      $x=5;
      $y=6;
      //因为5大于6不成立,所以为错的,即为false执行了假区间
      if($x > $y){
          echo '变量x大于变量y 成立';
      }else{
          echo '变量x大于变量y 不成立';
      }
    ?>
    

    5.4 逻辑运算符

    符号信息 说明 举例说明
    逻辑与(并且关系) $x和$y都为真则返回为真 $x and $y $x && $y
    逻辑或(或者关系) $x和$y均为false为真,其它情况全为真 $x or $y $x || $y
    逻辑非 取反,即true变为false,false变为true !$x
    逻辑异或 相同取false,相异为true

    举例:

    <?php
      $x=true;
      $y=false;
      //逻辑与(并且),要求两个都为true才能执行真区间,所以代码中执行假区间
      if($x && $y) {
          echo '执行了真区间';
      }else{
          echo '执行了假区间';
      }
    ?>
    

    5.5 三元运算符

    符号信息 说明
    $x?真代码段:假代码段 判断是否为真假?真情况:假情况
    ``反引号 反引号中间插入代码,执行系统命令,等价于shell_exec函数
    @ 表示抑制错误,把这一行的错误不让它显示出来了,效率低不建议用
    => 数组下标访问符
    -> 对象访问符
    instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

    举例:

    <?php
      $x=true;
      $x?$y=5:$y=6;
      //输出5
      echo $y;
    ?>
      
    <?php
      echo '<pre>';
      echo `ipconfig`;
      echo '</pre>';
    ?>
    

    6.PHP流程控制

    6.1 if条件

    语法:

    if 语句用于在指定条件为 true 时执行代码。
    if (条件) {
      当条件为 true 时执行的代码;
    }
    

    举例:

    <?php
      $sex = 'boy';
      if($sex = 'boy' ){
          echo '男孩子在外面要保护好自己';
      }
    ?>
    

    6.2 if-else

    语法:

    if (条件) {
      条件为 true 时执行的代码;
    } else {
      条件为 false 时执行的代码;
    }
    

    说明:

    <?php
      $sex = 'boy';
      if($sex = 'boy' ){
          echo '男孩子在外面要保护好自己';
      }else{
          echo '不要相信男人说的话';
      }
    ?>
    

    6.3 if-elseif

    语法:

    if (条件) {
      条件为 true 时执行的代码;
    } elseif (condition) {
      条件为 true 时执行的代码;
    } else {
      条件为 false 时执行的代码;
    }
    

    举例:

    <?php
      $dida = rand(0,23);
      echo "当前时间为 $dida 点
    ";
      if($dida > 6 && $dida < 10 ){
          echo '豆浆油条';
      }elseif ($dida > 10 && $dida < 14){
          echo '吃兰州拉面';
      }elseif ($dida >= 14 && $dida < 22){
          echo '正规按摩';
      }elseif ($dida > 22 && $dida <=23){
          echo '打打游戏';
      }elseif ($dida >=1 && $dida <3){
          echo '吃吃夜宵';
      }else{
          echo '睡觉或者工作中';
      }
    ?>
    

    6.3 switch选择

    语法:

    <?php
    switch(变量){ 
       case 具体值1:
          执行代码1;
          break;
       case 具体值2:
          执行代码2;
          break;
       case 具体值3:
          执行代码3;
          break;
          defult:
    }
    ?>
    

    举例:

    <?php
    $tool=rand(1,6);
    switch($tool){
        case 1:
            echo '司机开车';
            break;
        case 2:
            echo '民航';
            break;
        case 3:
            echo '自己家的专机';
            break;
        case 4:
            echo '火车动车';
            break;
        case 5:
            echo '骑马';
            break;
        case 6:
            echo '游轮';
            break;
    }
    

    6.4 while循环

    语法:

    while (条件为真) {
      要执行的代码;
    }
    

    举例:

    <?php
    //定义需要往返的次数,老外喜欢从0开始计数,所以系统也是从0开始
    $count=0;
    //while后面接布尔值判断,为真执行,为假停止
    //$count小于100的时候执行,也就是$count为0至99的时候执行.
    //如果$count不小于100了,循环停止执行后续的代码
    
    //循环开始处
    while($count < 100){
        echo "这是王总第 $count 次出差 <br />";
        //每次执行让$count+1,这样的话,就不会产生$count永远小于100的情况了
        $count++;
    }
    //循环结束
    ?>
    

    6.5 for循环

    语法:

    <?php
      for(初始值;判断条件;循环增加){
        执行代码
      }
    ?>
    

    举例:

    <?php
      for($i=1;$i<=10;$i++){
        echo '分手后第'.$i.'年, 我全都忘了你的样子<br>';
      }
    ?>
    

    6.6 HTML+PHP实现简易的计算器

    HTML代码

    <html>
    <head><title></title></head>
    <body>
    <form action="test.php" target="iframe" method="post">
        <input type="text" name="first"/>
        <select name="s">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" name="second" />
        <input type="submit" value="Let's GO!" />
    </form>
    <iframe src="test.php" name="iframe" ></iframe>
    </body>
    </html>
    

    PHP代码

    <?php
      $first=$_POST["first"];
      $v=$_POST["s"];
      $second=$_POST["second"];
      if($v=="+"){
      echo $first+$second;
      }elseif($v=="-"){
      echo $first-$second;
      }elseif($v=="*"){
      echo $first*$second;
      }elseif($v=="/"){
      echo $first/$second;
      }
    ?>
    

    6.7 稍微不那么简易的简易计算器

    html

    <html>
    <head><title>low jisuan</title></head>
    <body>
    <form action="index.php" target="iframe" method="post">
        <input type="text" name="num1"/>
        <select name="s">
            <option value="+">+</option>
            <option value="-">-</option>
            <option value="*">*</option>
            <option value="/">/</option>
        </select>
        <input type="text" name="num2" />
        <input type="submit" value="Let's GO!" />
    </form>
      <iframe src="index.php" name="iframe" ></iframe>
    </body>
    </html>
    

    php

    <?php
    $first=$_POST["num1"];
    $v=$_POST["s"];
    $second=$_POST["num2"];
    
    if( is_numeric($first) == false ){
        exit("nono");}
    elseif (is_numeric($second) == false){
        exit("nono");
    }
    
    switch ($v){
        case "+":
            echo $first+$second;
            break;
        case "-":
            echo $first-$second;
            break;
        case "*":
            echo $first*$second;
            break;
        case "/":
            echo $first/$second;
            break;
        default:
            echo "please input 2 num!";
    }
    ?>
    

    6.8 作业

    自己完善并理解简易计算机

    自学一下for和while

    模拟用户登录,如果输入错误超过3次,就提示错误并退出。

  • 相关阅读:
    .net core3.1 使用log4日志
    windows 使用IIS 部署 .net core3.1
    EntityFramework 延时加载、事务、导航属性
    EntityFramework EF状态跟踪和各种查询
    EF查看SQL2种方式 和 映射
    Sql Server 逻辑文件 '' 不是数据库 '' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
    async和await
    线程异常处理和取消和线程锁
    Task和TaskFactory
    thread:线程等待,回调
  • 原文地址:https://www.cnblogs.com/alaska/p/14360361.html
Copyright © 2011-2022 走看看