文件包含实现|学习笔记

简介: 快速学习文件包含实现

开发者学堂课程PHP 基础入门课程(下)文件包含实现】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/710/detail/12648


文件包含实现


内容介绍:

一、概念

二、步骤

三、示例

四、小结


一、概念

PHP 提供了四种文件包含的方式:都可以实现文件的包含

1、include'文件名(include('文件名))

2、require'文件名'

3、include_once'文件名'

4、require_once'文件名'

这里 include 是包含,require 是必须要求,once 就是一次的意思。 


二、步骤

1、明确当前文件要做的事情

⑴数据或者结构提供者(结构或者配置文件)

⑵数据显示者(HTML 模板)

⑶逻辑处理者(用户请求的逻辑处理代码)

2、给不同的文件提供不同的内容

3、在逻辑处理脚本上确定文件引入的目的

⑴使用被包含文件的数据或者结构:提前包含

⑵将当前处理结果进行显示:最后包含

4、应用

⑴提前包含(向上包含):直接在逻辑处理代码中应用被包含文件的数据或者结构

⑵最后包含(向下包含):在被包含文件中写代码使用逻辑处理脚本里的数据(被包含之前的所有数据)

这是什么意思?比如,逻辑处理者既包含了数据显示器,又包含了数据或者结构提供者。那么这个被包含进的数据也可以在另一个被包含的文件里使用,因为被包含进来就都是一个整体了,就相当于一根绳上的蚂蚱。


三、示例

需求:在 HTML 中显示用户的个人信息

1、数据提供者:data.php中保存数据)

#data.php

Sinfo = [

'name'=>'乌哥',

'age'=> 40,

'gender'=>'男'

];

2、数据显示者:list.html(模板)

<html>

<head>

<title>显示个人信息</title>

</head>

<body>

姓名:

年龄:

性别:

</body>

</htm1>/

3、逻辑处理者:controller.php

#想要使用:data.php 中的数据

include 'data.php';

#逻辑处理:判定等:可以使用 data.php 中的数据,因为是先包含

#想要显示数据:list.html,只能在1ist,hml 使用上面的所有数据(不管是包含,还是当前脚本产生的)

include 'list.html':

逻辑处理脚本(浏览器请求的脚本)自始至终都只做处理逻辑,不做其他事情(不提供数据、不进行显示)

既然要显示数据,就需要在数据显示者中利用 PHP 显示数据(list.html)

<html>

<head>

<tit1e>显示个人信息</title>

</head>

<body>

<!--当前文件为 HTML 后缀,但是不独立运行会被 PHP 包含,所以可以嵌入 PHP 代码-->

姓名:<?php echo $info['name'];?>

年龄:<?php echo $info['age'];?>

性别:<?php echo $info['gender'];?>

</body>

</html>

举例:此时新建一个,然后输入50data.php,这就是数据提供者。

<?php

#数据提供文件(不会被访问,只会被 PHP 文件包含)

$info = [

'name'=>‘犬夜叉',

'age'=> 100,

'gender'=>'公'

];

那么数据就有了,这时要注意浏览器是不会请求这个文件的。 因为这个文件请求没有意义,没有输出。

然后把它关掉,此时我们再做第二个文件。

输入51list.html:

<html>

<head>

<title>显示个人信息</title>

</head>

<body>

姓名:

年龄:

性别:

</body>

</html>

这个文件也不会被请求。但是 html 不是就是被请求的?没错,这是因为以前里面信息是死的,所以直接请求可以拿到信息。但是现在这个信息需要动态获取,所以一般就不会直接获取,那么此时就需要一个中间角色,能够真正被请求处理。

输入52controller.php:

<?php

#业务逻辑处理

#获取数据(自己处理或者从其他地方拿到数据)

include '50data.php';

#逻辑处理:权限判定、安全、操作正确性

#显示数据

require '51list.html';

这里要做的事情,第一步就是业务逻辑处理, 然后得到数据知道用户要干嘛,所以要获取数据,获取数据可以自己处理或者从其它地方拿到数据,通常第二种居多。

那怎么拿呢,数据在哪,是不是在50data.php 面,所以利用include '50data.php' 把这个文件包含进来。这就相当于有了一个数组。

第二步是逻辑处理,比如权限、安全、操作正确性,这些都是需要去考虑的。

第三步是显示数据。因为显示数据不是 php 的想象,所以要包含 require,这里只是证明两个都可以。然后输入'51list.html',有了这个东西之后,相当于逻辑处理就做完了。

此时访问访问我的逻辑处理,请求会发现,模板里面的东西显示出来了,但是没有显示数据。

这是因为缺一步,我们要在的逻辑处理里加载这个文件之后,在对应的模板里面使用 php 代码。就相当于在 php 里面写一样,去显示这些数据。

首先,姓名要显示的需要用 php 代码写。

姓名:<?php $info['name'];?>

这个 info 是之前已经有的。

然后同样的代码复制,

姓名:<?php $info['name'];?>

年龄:<?php $info['age'];?>

性别:<?php $info['gender'];?>

这个代码写完之后,保存。再来看浏览器,因为已经把数据放在模板上了。这时发现还是没有数据。

然后把 require 换成 include,发现还是没有。

也就是说前面的 php 代码没有生效,所以这里需要一个 echo。

姓名:<?php echo $info['name'];?>

年龄:<?php echo $info['age'];?>

性别:<?php echo $info['gender'];?>

再次打开浏览器,刷新发现数据显示出来了。

image.png

这就是文件的包含的使用形式。

数据负责提供数据,模板负责显示数据,所有的业务逻辑都由自己判断。数据是否正确,都有验证。


四、小结

1、实现文件包含有四种方式

⑴include 和 include_once

⑵require 和 require_once

2、文件包含看对于被包含文件的需求分为

⑴先包含:为了使用被包含文件中的数据或者结构

⑵后包含:为了将当前所有数据给被包含文件使用

①被包含文件通常是为了显示数据

②可以不用管是什么格式,但是需要用 PHP 标签和语法来输出数据

相关文章
|
1月前
|
编译器 开发工具 C语言
【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)
【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)
|
5月前
|
C语言
日常知识点之编译运行时识别头文件目录或者链接库目录设置
日常知识点之编译运行时识别头文件目录或者链接库目录设置
40 0
|
8月前
|
C++
C++分文件编写:拆类(.h和.cpp文件)
C++分文件编写:拆类(.h和.cpp文件)
81 0
|
12月前
|
存储 安全 Shell
|
12月前
|
安全 关系型数据库 MySQL
代码审计--文件包含
代码审计--文件包含
|
存储 安全 Linux
逆向分析:ELF文件的组成结构
逆向分析:ELF文件的组成结构
220 0
|
Linux 数据安全/隐私保护
使用ofd6x工具解析elf文件
使用ofd6x工具解析elf文件
144 0
使用ofd6x工具解析elf文件
|
存储 Linux Windows
ELF文件解析和加载(附代码)
ELF文件解析和加载(附代码)
453 0
ELF文件解析和加载(附代码)
|
安全 PHP Apache
8.文件包含实战
服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
8.文件包含实战
|
安全 Shell Linux
7.文件包含
文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。
7.文件包含