一.函数

1. 作用域(Scope)

(1)局部变量:变量在声明的代码段中有效

a.动态变量

b.静态变量:static ,用在函数中,当调用函数后内存不释放,能存储变量的最后的值。

(2)全局变量:变量在任意范围中都有效,但必须在函数中声明全局变量

global

$GLOBALS

(3)超全局变量:变量在任意范围中都有效,并且不用声明变量

说明:所有的预定义变量都是超全局变量

2.预定义变量

$_POST:接受表单中传输方式'post'信息,名/值

$_GET:接受表单中传输方式'get'信息,名/值

$GLOBALS:全局变量

$_FILES:接受表单中上传的信息

$_REQUEST:等同于 $_POST,$_GET,$_COOKIE的接受

$_COOKIE:会话机制,跨页面传输信息

$_SESSION:会话机制,跨页面传输信息

$_SERVER:获得服务器信息

$_ENV:环境变量

说明:

a.预定义变量都是以数组形式存储的

例如:获得表单信息中 某一个值:$_POST['user']

print_r($_POST);查看表单元素所有信息

二.常量

1.什么是常量  :程序中不可以改变的量 常量一旦定义不能重复定义

2常量分类

(1)自定义常量

a.声明常量

(a) define('常量名称','值');

(b) const 常量名称='值';(面向对象中定义)

b.输出常量

(a) echo 常量名称;

(b) constant('常量名称');

c.常量名称规范

(a) 没有 $

(b) 常量名称尽量大写

(c) 常量都是标量类型

(d) 常量是超全局变量,除了const定义外

(2)系统常量:

a.PHP_INT_MAX 获得整型最大值

b.PHP_VERSION php版本

c.PHP_OS 操作系统

(3)魔术常量:

__LINE__:获得当前代码的行号

__FILE__:获得当前文件的绝对路径

__DIR__:获得当前文件的目录绝对路径

__FUNCTION__:获得函数名称

__CLASS__:获得类名称

__METHOD__:获得方法名称

__NAMESPACE__:获得命名空间的名称

三.上传

1.表单中具备浏览框的条件

(1) method 必须是 post传输

(2) form标记中添加 enctype="multipart/form-data"

2. 接受上传的信息($_FILES 数组)

(1) $_FILES['浏览框名称']['name']

上传的文件名称

(2) $_FILES['浏览框名称']['type']

上传的文件类型

(3) $_FILES['浏览框名称']['tmp_name']

上传的文件在服务器的临时目录及文件名称

(4) $_FILES['浏览框名称']['error']

上传的文件报错, 0代表成功

(5) $_FILES['浏览框名称']['size']

上传的文件大小,单位 字节(Byte)

1024B = 1KB

1024KB = 1MB

1024MB = 1GB

3.文件报错

(1)UPLOAD_ERR_OK 其值为 0,没有错误发生,文件上传成功。

(2)UPLOAD_ERR_INI_SIZE 其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize=2M 选项限制的值。

(3)UPLOAD_ERR_FORM_SIZE 其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。

(4)UPLOAD_ERR_PARTIAL 其值为 3,文件只有部分被上传。

(5)UPLOAD_ERR_NO_FILE 其值为 4,没有文件被上传。

(6)UPLOAD_ERR_NO_TMP_DIR 其值为 6,找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。

php.ini 中参数upload_tmp_dir ='临时目录'

(7)UPLOAD_ERR_CANT_WRITE 其值为 7,文件写入失败。PHP 5.1.0 引进。

4. 将临时目录和文件上传到目标位置上

move_uploaed_file($tmpname,'文件夹'+$filename);

5. 包含文件函数

include:当文件加载失败时,报警告(Warning)错误并且后面代码继续执行

require:当文件加载失败时,报致命(Fatal)错误并且后面代码停止执行

include_once:当页面重复加载时,只加载一次

require_once:当页面重复加载时,只加载一次

6.多文件上传

(1) 表单元素名称以数组形式命名,

得三维数组信息,所以将三维数组转为

索引+关联的二维数组

(2) 表单元素名称单独命名,得关联+关联的

二维数组,所以关联+关联转为索引+关联

的二维数组,与单文件上传的区别是有多个

成员值

7. 上传步骤

(1)表单元素中浏览框具备的条件

(2)将上传接受的信息都转为 索引+关联的二维数组

(3)单文件或多文件上传

(a) 获得新的 索引+关联的二维数组(循环每个文件上传)

(b) 判断 上传报错 0 成功

(c) 避免上传文件冲突给文件重命名

(d) 临时目录和文件名称移动到目标位置上

(4) 要求

...

// =================================

Linux  目的:给www 文件夹权限

打开终端

a. su root (进入root用户)

b. 密码: php123456

c. cd  / (根目录下)

d. cd home (进入 home 文件夹)

e. ll 查看 home 文件的目录资源 www

f. chmod -R 777 www

f. ll

 

【day09】PHP的更多相关文章

  1. 网络编程基础【day09】:socket编程入门(一)

    本节内容 1.OSI七层模型 2.概述 3.关系图 4.代码逻辑图 5.socket概念 一.OSI七层模型 二.概述 socket通常也称作"套接字",用于描述IP地址和端口,是 ...

  2. 网络编程基础【day09】:堡垒机前戏(十一)

    本节内容 1.堡垒机前戏 2.SSHClient 3.SFTPClient 一.堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 ...

  3. 网络编程基础【day09】:socketserver进阶(十)

    本节内容 1.概述 2.多用户并发 3.socketserver.BaseServer 一.概述 之前上一篇写的 day8-socketserver使用 讲解了socketsever如何使用,但是在最 ...

  4. 网络编程基础【day09】:socketserver使用(九)

    本节内容 1.概述 2.socketserver类型 3.创建socketserver步骤 4.简单的代码实现 一.概述 我们之前的用户都是不支持多并发的,所以我们现在需要一个支持多用户,实现一个并发 ...

  5. 网络编程基础【day09】:socket解决粘包问题之MD5(八)

    本节内容 1.概述 2.代码实现 一.概述 上一篇博客讲到的用MD5来校验还是用的之前解决粘包的方法,就是客户端发送一个请求,等待服务端的确认的这样的一个笨方法.下面我们用另外一种方法:就是客户端已经 ...

  6. 网络编程基础【day09】:socket接收大数据(五)

    本节内容 1.概述 2.socket接收大数据 3.中文字符的坑 一.概述 上篇博客写到了,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区 ...

  7. 网络编程基础【day09】:socket实现文件发送(六)

    本节内容 1.概述 2.文件下载实现 3.MD5值校验 一.概述 我们如何利用socket去下载一个文件,整体思路是这样的: 读取文件名 检测文件是否存在 打开文件 检测文件大小 发送文件大小给客户端 ...

  8. 网络编程基础【day09】:简单socket实例(二)

    本节内容 1.概述 2.socket实例 3.总结 一.概述 之前我们只是介绍了soket的概念和一些逻辑图表,下面我们来看看,socket的客户端和服务端到底是怎么用的? 二.socket实例 2. ...

  9. 网络编程基础【day09】:通过socket实现简单ssh客户端(三)

    本节内容 1.概述 2.socket发送中文 3.重复发送和多次接收 4.模拟ssh客户端 一.概述 本篇博客讲一下,如果socket客户端断了,另外的客户端怎么接入服务端,还有模拟ssh的链接等. ...

  10. 网络编程基础【day09】:实现简单地ssh(四)

    本节内容 概述 简单ssh socket接收大数据的困惑 一.概述 我们用过linux的就知道什么是ssh,它是一种客户端和服务端交互返回的一个解决,输入一个命令,给我返回什么,接下来我们说一说,如何 ...

随机推荐

  1. Go语言系列教程

    一 Go介绍与开发环境搭建 01-Go语言简介 02-开发环境搭建 03-Go语言集成开发环境之GoLand安装使用 04-Go语言集成开发环境之VS Code安装使用 05-Go包管理详解 二 Go ...

  2. 添加Chrome插件时出现“程序包无效”等问题的解决办法

    相较之各大浏览器,我最喜欢的便是Chrome了,不只因为Chrome搜索,也因为Google Chrome强大的插件功能. 而这一切的东风,就是"谷歌访问助手". 谷歌访问助手的下 ...

  3. windows 10使用vscode进行远程代码开发 | tutorial to use vscode for remote development using ssh on windows

    本文首发于个人博客https://kezunlin.me/post/c93b6ba6/,欢迎阅读最新内容! tutorial to use vscode for remote development ...

  4. Java电商项目-3.使用VSFTPD_Nginx完成商品新增

    目录 到Github获取源码请点击此处 一. 商品类目查询 二. FTP图片服务器的搭建 图片上传思路介绍 Linux中安装vsftpd 接着配置ftp服务, 让外网可以访问 Http服务器搭建 Ng ...

  5. 死磕 java同步系列之StampedLock源码解析

    问题 (1)StampedLock是什么? (2)StampedLock具有什么特性? (3)StampedLock是否支持可重入? (4)StampedLock与ReentrantReadWrite ...

  6. ES6语法:let和const

    ES6新增加了两个重要的JavaScript关键字:let和const 一.let关键字 let声明的变量只在let命令所在的代码块内有效. 1.基本语法 let a='123' 2.let和var的 ...

  7. Python爬取知乎上搞笑视频,一顿爆笑送给大家

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Huangwei AI 来源:Python与机器学习之路 PS:如有需 ...

  8. StringBuilder修改字符串内容,增,删,改,插

    package seday01;/** * 字符串不变对象特性只针对字符串重用,并没有考虑修改操作的性能.因此String不适合频繁修改内容. * 若有频繁修改操作,使用StringBuilder来完 ...

  9. HTML5新标签与特性---多媒体

    多媒体标签 embed:标签定义嵌入的内容 audio:播放音频 video:播放视频 多媒体 embed(会使用) embed可以用来插入各种多媒体,格式可以是 Midi.Wav.AIFF.AU.M ...

  10. SQL 注入漏洞浅研究学习

    SQL注入漏洞:Web安全方面最高危的漏洞,SQL漏洞威胁着网站后台数据的安全问题. 网上常说“万能密码”,这个万能密码则就是利用了SQL注入漏洞: ' or 1=1 -- 上述的万能密码输入在用户登 ...