zoukankan      html  css  js  c++  java
  • 后端编程语言PHP

     

    | 版权声明:本文为博主原创文章,未经博主允许不得转载。

     

    一、PHP 简介

    PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言

    PHP 脚本在服务器上执行。

    什么是 PHP(超文本预处理器)

    • PHP "PHP Hypertext Preprocessor" 的首字母缩略词
    • PHP 是一种被广泛使用的开源脚本语言
    • PHP 脚本在服务器上执行
    • PHP 没有成本,可供免费下载和使用

    什么是 PHP 文件?

    • PHP 文件能够包含文本、HTMLCSS 以及 PHP 代码
    • PHP 代码在服务器上执行,而结果以纯文本返回浏览器
    • PHP 文件的后缀是 ".php"

    PHP 能够做什么?

    • PHP 能够生成动态页面内容
    • PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
    • PHP 能够接收表单数据
    • PHP 能够发送并取回 cookies
    • PHP 能够添加、删除、修改数据库中的数据
    • PHP 能够限制用户访问网站中的某些页面
    • PHP 能够对数据进行加密
    • 通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML XML

    为什么使用 PHP

    • PHP 运行于各种平台(Windows, Linux, Unix, Mac OS X 等等)
    • PHP 兼容几乎所有服务器(Apache, IIS 等等)
    • PHP 支持多种数据库
    • PHP 是免费的。请从官方 PHP 资源下载:www.php.net
    • PHP 易于学习,并可高效地运行在服务器端

     

    二、PHP 语法

    PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。

    • PHP 脚本可放置于文档中的任何位置。
    • PHP 脚本以 <?php 开头,以 ?> 结尾:
    1 <?php
    2 // 这是单行注释
    3 # 这也是单行注释
    4 /*
    5 这是多行注释块
    6 它横跨了
    7 多行
    8 */
    9 ?>
    • PHP 文件的默认文件扩展名是 ".php"
    • PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
    • php的逻辑代码不会输出,仅仅只会返回执行完毕的结果

    三、PHP 基础

    1.变量

    • 变量以$符号开头,其后是变量的名称
    • 变量名称必须以字母或下划线开头
    • 变量名称不能以数字开头
    • 变量名称只能包含字母数字字符和下划线(A-z0-9 以及_
    • 变量名称对大小写敏感
     1 // 变量以`$`符号开头,其后是变量的名称
     2 // 变量名称必须以字母或下划线开头
     3 $a;
     4 $b;
     5 $a1;
     6 $_abc;
     7 
     8 // 变量名称不能以数字开头
     9 // 变量名称只能包含字母数字字符和下划线(`A-z`、`0-9` 以及` _`)
    10 // 下面这些是错误的变量定义
    11 $1;
    12 $哈哈;
    13 $^&*;
    14 
    15 //变量名称对大小写敏感(`$y` 与`$Y` 是两个不同的变量)
    16 // 下面定义的两个变量是不同的,大写,小写x
    17 $x;
    18 $X;

    2.内容输出

    • echo:输出简单数据类型,如字符串、数值
    • print_r():输出复杂数据类型,如数组
    • var_dump():输出详细信息,如对象、数组
     1 $arr =array(1,2,'123');
     2 echo'123';
     3 // 结果为 123
     4 
     5 print_r($arr);
     6 // 结果为 Array ( [0] => 1 [1] => 2 [2] => 123 )
     7 
     8 var_dump($arr);
     9 /* 结果为array
    10 0 => int 1
    11 1 => int 2
    12 2 => string '123' (length=3)
    13 */

    3.数据类型

    • PHP支持的数据类型包括:字符型、整型、浮点型、布尔型、数组、对象、NULL
    • 定义字符串时需要注意:
    • 单引号:`` 内部的内容只是作为字符串
    • 双引号:"" 如果内部是PHP的变量,那么会将该变量的值解析
    • 字符串连接:不同于JavaScript,PHP中使用.进行连接
    • gettype() 检测数据类型
    • is_string() 是否是字符
    • is_array() 是否是数组
     1 // 字符串
     2 $str = '123';
     3 
     4 // 字符串连接
     5 $str2 = '123'.'哈哈哈';
     6 
     7 // 字符串
     8 
     9 // 整数
    10 $numA = 1; //正数
    11 $numB = -2;//负数
    12 
    13 // 浮点数
    14 $x = 1.1;
    15  
    16 // 布尔
    17 $a = true;
    18 $b = false;
    19 
    20 // 数组
    21 $arr = array('123',123)

    4.运算符

    • 基本与Javascript语法一致
    • 算数运算符: +,-,/,*,%
    • 赋值运算符: x = y,x += y,x -= y 
    • . 号表示链接符
    • 分支、循环语句
    • Javascript基本一致
    • foreach()
    • switch()
    1 <?php
    2 $x=10;
    3 $y=6;
    4 echo ($x + $y); // 输出 16
    5 echo ($x - $y); // 输出 4
    6 echo ($x * $y); // 输出 60
    7 echo ($x / $y); // 输出 1.6666666666667
    8 echo ($x % $y); // 输出 4
    9 ?>

    5.函数

    • Javascript基本一致
    • 函数名对大小写不敏感
    • 默认参数
    • 文件引入
    • include 引入失败后程序继续执行
    • require 引入失败后程序终止执行
     1 // 基础语法
     2 function functionName() {
     3   这里写代码
     4 }
     5 
     6 // 无参数 无返回值的函数
     7 function sayhi(){
     8     echo "Hello World";
     9 }
    10 
    11 // 有参数 无返回值的函数
    12 function sayName($name){
    13     echo $name.'你好哦';
    14 }
    15 
    16 // 调用
    17 sayName('小狐狸');
    18 
    19 // 有参数,参数有默认值的函数
    20 function sayFood($food='西兰花'){
    21     echo $food.'好好吃';
    22 }
    23 
    24 // 调用
    25 sayFood('西葫芦');// 如果传入参数,就使用传入的参数
    26 sayFood();// 如果不传入参数,直接使用默认值
    27 
    28 // 有参数,有返回值的函数
    29 function sum($a,$b){
    30     return $a+$b
    31 }
    32 sum(1,2);// 返回值为1+2 = 3

    6.超全局变量

    • $_GLOBALS ---引用全局作用域中可用的全部变量
    • $_SERVER ---这种超全局变量保存关于报头、路径和脚本位置的信息。
    • $_GET ---用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。
    • $_POST ---广泛用于收集提交 method="post" HTML 表单后的表单数据。$_POST 也常用于传递变量。
    • $_REQUEST ---用于收集 HTML 表单提交的数据。
    • $_FILES ---通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
    • $_COOKIE
    • $_SESSION
    • $_ENV

     

    7.表单处理

    • 表单name属性的是用来提供给服务端接收所传递数据而设置的
    • 表单action属性设置接收数据的处理程序
    • 表单method属性设置发送数据的方式
    • *当上传文件是需要设置 enctype="multipart/form-data"
    • $_GET接收 get 传值
    • $_POST接收 post 传值
    • $_FILES接收文件上传

    GET POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。

    1$_GET 是通过 URL 参数传递到当前脚本的变量数组。

    2$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

    何时使用 GET

    通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

    GET 可用于发送非敏感的数据。

    注释:绝不能使用 GET 来发送密码或其他敏感信息!

    何时使用 POST

    通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且所发送信息的数量也无限制

    此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

    不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

    提示:开发者偏爱 POST 来发送表单数据。

    <form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"

    <input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

    8.header

    header()函数 用来向客户端(浏览器)发送报头,如果出现中文无法显示,可以尝试在PHP代码顶部添加如下代码

    header("content-type:text/html; charset=utf-8");

    浏览器访问http服务器,接收到响应时,会根据响应报文头的内容进行一些具体的操作,php,我们能够使用 header来设置这些内容

    1设置文本编码

    设置编码格式为:utf-8

    header('content-type:text/html; charset= utf-8');

    2设置页面跳转

    设置跳转到百度首页

    header('location:http://www.baidu.com');

    3设置页面间隔刷新

    header('refresh:3; url=http://www.xiaomi.com');

     

    四、PHP 表单

    1.PHP_GET数据获取

    PHP,如果想要获取通过get方法提交的数据,可以通过$_GET对象来获取

    HTML代码: 下面就是一个简单的表单代码,将数据提交到01.php,使用get的方式

    1 <form action="01.php" method="get" >
    2   <label for="">姓名:
    3       <input type="text" name= "userName"></label>
    4       <br/>
    5   <label for="">邮箱:
    6       <input type="text" name= "userEmail"></label>
    7       <br/>
    8       <input type="submit" name="">
    9 </form>

    PHP代码:

    <?php
        echo "<h1>GET_PAGE</h1>";
        echo 'userName:'.$_GET['userName'];
        echo '<br/>';
        echo 'userEmail:'.$_GET['userEmail'];
     ?>

    2.PHP_POST数据获取

    PHP,如果想要获取通过post方法提交的数据,可以通过$_POST对象来获取

    HTML代码: 下面就是一个简单的表单代码,将数据提交到02.php,使用post的方式(注意:代码中的method改为post)

    1 <form action="02.php" method="post" >
    2   <label for="">姓名:
    3       <input type="text" name= "userName"></label>
    4       <br/>
    5   <label for="">邮箱:
    6       <input type="text" name= "userEmail"></label>
    7       <br/>
    8       <input type="submit" name="">
    9 </form>

    PHP代码:

    1 <?php
    2     echo "<h1>POST_PAGE</h1>";
    3     echo 'userName:'.$_POST['userName'];
    4     echo '<br/>';
    5     echo 'userEmail:'.$_POST['userEmail'];
    6  ?>

    3.POST&GET错误处理

    当我们直接访问POST&GET页面时由于并没有传递任何数据,会因为$_GET$_POST不存在对应的key而报错.

    处理方式1:

    使用array_key_exists(key, 数组)函数来进行判断

    参数1: 要检测的key字符串

    参数2: 检验的数组

        if(array_key_exists('name', $_GET)){

            //如果有数据 再去读取

        }else{

            // 反之 可以执行一些 其他的逻辑

        }

    五、PHP 保存上传文件

    php中上传的文件,会先以临时文件的方式保存起来,我们将其移动到其他的位置即可

    1.$_FILE

    php中 能够通过$_FILE 获取上传的文件

    浏览器端部分代码

    • 假定浏览器在form表单中如下标签
    • 1form提交数据需使用post提交
    • 2form提交数据时,需在form表单中添加enctype=multipart/form-data属性
    1 <form action='xx.php' method='post' enctype='multipart/form-data'>
    2     <input type='file' name='icon'>
    3     <input type='submit'>
    4 </form>

    服务端代码:

    • $_FILES用法跟$_GET,$_POST类似,都是关系型数组
    • #_FILE['key']:可以获取对应上传的文件,这里的key跟提交时的name相对应
    • #_FILE['key']['name'] 可以获取上传的文件名
    • #_FILE['key']['tmp_name']可以获取上传的文件保存的临时目录
    1 <?php
    2 // 可以打印 $_FILES的所有信息
    3 print_r($_FILES);
    4 ?>

    2.move_uploaded_file(移动文件)

    上传的临时文件,一会就会被自动删除,我们需要将其移动到保存的位置

    move_uploaded_file参数:

    参数1:移动的文件

    参数2:目标路径

    move_uploaded_file($_FILES['photo']['tmp_name'], './images/test.jpg');

    六、PHP设置上传文件大小

    在使用wamp过程中,如果想要修改上传的文件显示,需要如何设置呢?

    修改php.ini

    1.步骤:

    • 左键点击wamp
    • 选择php
    • 在弹出的窗口中选择php.ini
    • 在打开的文件中进行修改(修改步骤如下)
    • 修改完毕,保存并重启wamp

    2.修改内容:

    使用文本编辑工具的搜索功能找到下列选项 进行修改

    设置文件最大上传限制(值的大小可以根据需求修改)

    • file_uploads = On   ;                    是否允许上传文件 On/Off 默认是On
    • upload_max_filesize = 32M ;        上传文件的最大限制
    • post_max_size = 32M ;               通过Post提交的最多数据

    考虑网络传输快慢,这里修改一些参数

    • max_execution_time = 30000      ; 脚本最长的执行时间 单位为秒
    • max_input_time = 600            ; 接收提交的数据的时间限制 单位为秒
    • memory_limit = 1024M            ; 最大的内存消耗
  • 相关阅读:
    分享一个自己写的vue多语言插件smart-vue-i18n
    利用vw+rem实现移动web适配布局
    你说前端不了解业务?
    小程序开发总结一:mpvue框架及与小程序原生的混搭开发
    小码农的职场人生一:由张小平离职引发的一些吐槽
    javascript本地缓存方案-- 存储对象和设置过期时间
    手淘移动适配方案flexible.js兼容bug处理
    微信小程序入坑之自定义组件
    vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
    非域环境下使用证书部署数据库(SqlServer2008R2)镜像
  • 原文地址:https://www.cnblogs.com/yongshaoye/p/7139121.html
Copyright © 2011-2022 走看看