递归和快速排序.docx

上传人:b****6 文档编号:8507053 上传时间:2023-01-31 格式:DOCX 页数:17 大小:641.34KB
下载 相关 举报
递归和快速排序.docx_第1页
第1页 / 共17页
递归和快速排序.docx_第2页
第2页 / 共17页
递归和快速排序.docx_第3页
第3页 / 共17页
递归和快速排序.docx_第4页
第4页 / 共17页
递归和快速排序.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

递归和快速排序.docx

《递归和快速排序.docx》由会员分享,可在线阅读,更多相关《递归和快速排序.docx(17页珍藏版)》请在冰豆网上搜索。

递归和快速排序.docx

递归和快速排序

昨日回顾

文件上传

1、前端界面,form表单中的Input表单输入元素

enctyp:

用于设置二进制数据传递,

取值:

application/x-www-form-urlencoded(默认)

multiplart/form-data用于二进制数据传递

method:

用于设置数据提交方式

post可以传递文本数据与二进制数据

2、后台处理

开启文件上传功能php.ini

file_uploads=on

upload_tmp_dir设置临时文件夹(特点,脚本执行结束,其中文件就会被删除,所以需要将此目录中的上传的文件移动其他位置)

move_uploaded_file($source,$target)

用于移动文件

$source与$target是一个完整的文件名(包含路径与文件名)

$source文件名的获取:

$_FILES

$_FILES专用于存储上传文件信息的一个超全局变量(数组)

一维的键名:

form表单的name属性值

键值又是一个数组,其中包含:

name键名,记录的是客户端上传的文件的原名

type键名,记录的是客户端上传的文件的类型(MIME)

tmp_name键名,记录的是服务器临时目录中的文件(需要被移走文件)

error键名,记录的是上传文件过程中出现的错误

size键名,记录的是上传文件的大小

文件的操作

文件:

文件与目录,目录也是一个文件,目录的作用是用于存储文件的的文件。

文件的操作:

file_exists($filename);

判断文件是否存在

filemtime($filename);

获取文件的创建时间

fileatime($filename);

获取文件的修改时间

文件的属性:

is_readable($filename);

is_writeable($filename);

is_executable($filename);

copy($source,$target);用于复制文件

说明:

$source是原文件名

$target是新文件名

rename($source,$target);

说明:

$source是原文件名

$target是新文件名

文件中数据的操作

fopen($filename,$mode);

说明:

用于打开一个文件,返回一个资源

$filename是一个文件的完整路径

$mode是文件的打开模式

r以只读取的方式打开

r+读写方式向头部写入

示例:

w

w+

以读写的方式打开,如果文件不存,则创建,如果存在,则覆盖全部内容

a

a+

以读写的方式打开,向文件尾部写入

文件指针:

fseek($fp,位置)

示例:

ftell($fp);

用于获取指针的位置

文件锁定

当对某一个文件进行并发写入的时候,A用户在向某个文件进行写的时,B用户又向该文件写入数据。

flock($fp,mode);

说明:

$fp是文件资源

mode锁定的方式

LOCK_SH共享锁

LOCK_EX排他锁

LOCK_UN取消锁定

示例:

fgetc($fp)

说明:

c表示character,字符(单个)

每次读取一个字符,并将文件指针下移

示例:

fgets($fp)

说明:

每次读取一行内容,并将文件指针下移

file($filename)

说明:

将文件的每一行作为数组的一个元素

示例:

readfile($filename)

说明:

直接将整个文件的内容放到输出缓冲区(不需要echo)

示例:

file_get_contents($fp)

用于读取所有的文件内容

示例:

fwrite($fp,'内容');

说明:

向文件$fp中写入内容(写入的位置根据fopen打开文件的模式而定)

file_put_contents($filename,'内容');

说明:

$filename是文件名(URI)

不需打开文件

示例:

unlink($filename);

说明:

用于删除文件

对目录的操作:

首先需要明确目录也是一个文件。

opendir($filename)

说明:

用于打开一个目录

scandir($filename);

说明:

用于扫描目录内容,并以数组的形式返回

示例:

closedir($handle)

说明:

用于关闭目录

chdir($dir)

说明:

用于更改目录

getcwd()

说明:

用于获取当前工作目录

递归:

函数自己调用自己。

函数是用于完成某一功能,在处理实际问题时,在写函数体时,发现其后完成的功用,与已写好的函数的功用一样,此时就可以在函数体,此位置调用函数本身。

提示:

递归是层级一层层调用自己,但实现递归时只考虑一层

递归两要素:

递归点:

函数其后的功能与已完成的代码一致时,使用函数自己调用自己。

递归出口:

根据需求设置函数的返回条件。

遍历某文件夹中所有的内容(包含子文件夹中的内容与文件夹)

第1步:

只遍历一层目录内容

第2步:

找到递归点

第3步:

递归出口

is_dir($filename);

说明:

用于判$filename是否是一个目录,如果是返回true,否则返回false

$filename是一个绝对路径

算法:

快速排序

思想:

将一个数组分为左右两部分进行比较,再对左边与右边执行相同的操作,

当最层的函数returnmerge($left,array($tmp),$right),最内层的上一层,则有机会以执行returnmerge(...)

示例:

文件下载

两种方式:

一、使用a链接,实现下载

示例:

缺点:

只能是不能被浏览器解析的文件

会暴露文件的路径(服务器的目录结构会被显示出来)

二、使用php来操作http协议实现文件下载

1、告诉浏览器不要解析此文件。

header('content-type:

application/octet-stream');

2、告诉浏览器此数据需要作为数据进行下载

header('content-disposition:

attachment;filename=保存的文件名');

3、传递数据

php读取文件中的内容,再使用echo输出至缓冲区即可。

示例:

前端界面

后台php处理

MySQL

Database只要是用于存储数据的介质都可以称之为数据库。

在计算机中数据库就是用于高效率的对数据进行读取软件。

数据库的分类:

关系型数据库

只要是存储在硬盘中的数据库就可理解为关系型数据库。

就是使用关系型来组织数据的数据库即为关系型数据库。

非关系型数据库

只要是存储在内存中的数据库就是非关系型数据库。

没有使用关系型来组织数据的数据库即为非关系型数据库

关系型数据库与非关系型数据库的区别:

关系型数据库特点:

1、事务一致性,事务就是现实中的某件事,体现在数据库中就是对数据库的操作。

现实中的某一件事务,可能需要数据库执行多步。

例如:

银行中,A用户转帐给B用户,就是一个完整的事务,现实是不能再拆分。

在数据库的本质是:

A操作,对A用户减少金额;B操作,对B用户增金额。

是由两步操作完成,由这是一个完整事务,数据库中A操作与B的操作必须全成功,才算现实的成功。

所以关系型数据库,可以应用于任何对一致性有要求的系统,典型的代表银行系统。

2、另一个特点,使用关系模型来组织数据,换句话说就是使用二维表来存储数据,二维表就是对数据的一种约束。

非关系型数据库

使用的不是二维来存储数据,使用的是Key=>Value,键值对存储数据。

1、用于高并发,高读写能力数据库,典型的代表Redis

2、适用于海量数据的查询

特点:

在海量数据中可以进行快速查找(中文),典型的代码MongoDB

MySQL数据库中的对象:

DBMS数据库管理系统

DB数据库

Table数据表

Record记录

Field字段

MySQL服务的维护

1、图形界面

服务对MySQL进行启动、重启、关闭。

2、cmd命令行

netstop服务名

用于停止指定的服务器

netstart服务名

用于启动mysql服务

示例:

MySQL的登陆

MySQL是一种C/S结构

MySQL的客户端:

cmd、可视化图形界面、php代码

MySQL客户端与服务器端

登陆语法:

mysql-h主机名-P端口号-u用户名-p密码数据库名

mysql命令在cmd窗口的任何位置都可以运行的前提:

必须设置环境变量。

将mysql.exe文件所在的目录,粘贴至window的系统环境变量中。

示例:

SQL命令

数据库的操作也就是SQL命令

SQL(StructuredQueryLanguage)

结构化查询语言,虽然是查询语言,也是一种编程语言,但是执行查询操作。

根据数据的操作对象,可以将SQL语句分为几类。

DDL(DataDefinationLanguage)数据定义语言

createdatabase、createtable、createview、createfunction、createprocedure

dropdatabase.....

DML(DataModifyLanguage)数据修改语言

update、insert、delete

DQL(DataQueryLanguage)数据查询语言

select

DCL(DataControlLanguage)数据控制语言(通过用户权限)

createuser、grant权限

TCL(TransactionControlLanguage)事务控制语言

transaction、commit、rollback

数据库的操作

创建一个数据库

语法:

createdatabase数据库名【charsetutf8】;

示例:

创建数据库的本质:

会在my.ini中的datadir配置选项指定的目录中创建一个与数据库同名的目录。

在数据库同名目录中会存在一个db.opt文本文件示例:

说明:

字符集,是用于存储数据库的编码方式

校验集,就是某一个字符集内比较规则

my.ini中的datadir示例:

查看数据库

查看所有的数据库

语法:

showdatabases;

示例:

test数据库,可以删除

mysql数据库,mysql的核心数据库,msyql用于管理其他数据库的数据库。

建议不要轻易修改里面的数据。

information_schema数据库,记录着mysql用于管理其他数据库的相关信息。

performance_schema数据库,性能数据库,主要记录了服务器的运行性信息。

查看数据库的创建语句

语法;

showcreatedatabase数据库名;

示例:

修改数据库

只能修改字符集与校验集。

alterdatabase数据库名charset字符集;

示例:

删除数据库

语法:

dropdatabase数据库名;

示例:

示例:

set_time_limit(0);

content-type:

application/octet-stream

content-disposition:

attachment;filename='filename';

echofile_get_contents

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1