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次,就提示错误并退出。

  • 相关阅读:
    智器SmartQ T7实体店试用体验
    BI笔记之SSAS库Process的几种方案
    PowerTip of the Day from powershell.com上周汇总(八)
    PowerTip of the Day2010071420100716 summary
    PowerTip of the Day from powershell.com上周汇总(十)
    PowerTip of the Day from powershell.com上周汇总(六)
    重新整理Cellset转Datatable
    自动加密web.config配置节批处理
    与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable
    在VS2003中以ClassLibrary工程的方式管理Web工程.
  • 原文地址:https://www.cnblogs.com/alaska/p/14360361.html
Copyright © 2011-2022 走看看