后端编程语言PHP

 

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

 

1、PHP 简介php

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

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

为何使用 PHPcookie

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

 

2、PHP 语法网络

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

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

 

3、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');

 

4、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{

        // 反之 能够执行一些 其余的逻辑

    }

 

5、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');

 

6、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            ; 最大的内存消耗
相关文章
相关标签/搜索