【前言】
本文总结下PHP高级相关知识点,关于基础知识我在之前PHP基础教程详解里做过总结
【列表】
(一)多维数组
(二)时间日期
(1)获取简单时间;(2)自动版权年份;(3)获得简单的时间;(4)获取时区;
(5)创建日期;(6)案例:计算从当前距离国庆放假的天数
(三)Include文件
(1)include与require举例;(2)include与require区别;(3)使用场景;
(四)文件打开,读取,关闭
(1)打开读取文件;(2)打开文件;(3)读取文件;(4)读取单行文件
(5)逐行检查读取;(6)读取单个字符;(7)关闭文件
(五)文件创建,写入,覆盖
(1)创建;(2)写入;(3)覆盖
(六)文件上传
(1)创建文件上传表单;(2)创建上传脚本;(3)上传限制;(4)保存上传文件
(七)Cookies
(1)创建;(2)简介;(3)检索
(4)获取cookie值;(5)删除cookie;(6)不支持cookie的解决方案
(八)Sessions
(九)E-mail
(十)安全电子邮件
(十一)Error错误处理
(十二)Exception
(十三)Filter
【主体】
(一)关于多维数组,上篇文章做了介绍
(二)时间日期
JS:
先提下JS里时间日期,后来同事推荐了一个处理时间的库moment.js
var date = new Date(); console.log(date) //打印结果,例Sun Mar 11 2017 17:48:19 GMT+0800 (中国标准时间)
PHP:
date() 函数用于对日期或时间进行格式化
date(format,timestamp) 日期(格式,时间戳)
具体详解我在后面文章PHP时间日期相关里做了总结
(三)Include文件
服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。
include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。如果需要在网站的多张页面上引用相同的 PHP、HTML 或文本的话,包含文件很有用。
(1)include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。
include 和 require 语句是相同的,除了错误处理方面:
语法对比:
include 'filename'; require 'filename';
错误处理方面对比:
①require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
②include 只生成警告(E_WARNING),并且脚本会继续
因此,如果希望继续执行,并向用户输出结果,即使包含文件已丢失,就得使用 include。
否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,必须始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。
作用:包含文件省去了大量的工作。这意味着可以为所有页面创建标准页头、页脚或者菜单文件。然后,在页头需要更新时,您只需更新这个页头包含文件即可
(2)include实例
①直接引入
<?php include 'footer.php';?>
②嵌套引入
<div class="menu"> <?php include 'menu.php';?> </div>
③案例:引入变量(通俗理解:引入即直接将整个代码引入,可以看做写在一个文件里)
假设one.php定义了变量:
<?php $color='银色的'; $car='奔驰轿车'; ?>
two.php引入使用
<?php include 'vars.php'; echo "我有一辆" . $color . $car "。"; ?>
(3)require举例
require语法与include相同,这里就不列举了
(4)include与require区别
<?php include 'noFileExists.php'; echo "该文件不存在,请求资源错误"; ?>
①include的持续性:用 include 语句引用某个文件并且 PHP 无法找到它,脚本会继续执行,echo 语句仍会继续执行
②require的终止性:如果改用 require 语句完成相同的案例,echo 语句不会继续执行,因为在 require 语句返回严重错误之后脚本就会终止执行
(5)使用场景
①require :当文件被应用程序请求时使用require,因为在框架、CMS或者复杂的PHP应用程序编程中,必须始终使用 require 向执行流引用关键文件。在某个关键文件意外丢失的情况下,这有助于提高应用程序的安全性和完整性。
②include:当文件不是必需,且应用程序在文件未找到时应该继续运行时使用include。因为如果希望继续执行,并向用户输出结果,即使包含文件已丢失,就得使用 include。
(四)文件打开,读取,关闭
PHP拥有多种函数操作文件,包括创建、读取、上传以及编辑文件
篇幅问题,我在后面文章PHP打开,读取,关闭文件里做了总结
(五)文件创建,写入,覆盖
下面介绍下,如何在服务器创建并写入文件
(1)创建文件------------ fopen()
fopen() 函数也用于创建文件。如果用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。也许有点混乱,但是在 PHP 中,创建文件所用的函数与打开文件的相同。
下面的例子创建名为 "test.txt" 的新文件,此文件将被创建于 PHP 代码所在的相同目录中,实例:
$myfile = fopen("test.txt", "w");
(2)写入文件-------------fwrite()
fwrite() 函数用于写入文件。第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串
下面的例子把姓名写入名为 "newfile.txt" 的新文件中,实例:
<?php $myfile = fopen("newfile.txt", "w") or die("Unable to open file!"); $txt = "Bill Gates\n"; fwrite($myfile, $txt); $txt = "Steve Jobs\n"; fwrite($myfile, $txt); fclose($myfile); ?>
代码解析:
①以上脚本向文件 "newfile.txt" 写了两次。在发送的字符串 $txt 中,第一次包含 "Bill Gates",第二次包含 "Steve Jobs"
②在写入完成后,使用 fclose() 函数来关闭文件
如果打开 "newfile.txt" 文件,它应该是这样的:
Bill Gates Steve Jobs
(3)覆盖
在上面写入数据的基础上,修改写入的字符串,再次刷新页面执行时,newfile.txt里的数据将会被覆盖
例如,我们将上面代码
$txt = "Bill Gates\n"; $txt = "Steve Jobs\n";改为
$txt = "Bill Gates---1\n"; $txt = "Steve Jobs---1\n";
时,将覆盖之前的数据,此时再打开newfile.txt文件,可以看到
Bill Gates1 Steve Jobs1
(六)文件上传
分为四个步骤(1)创建文件上传表单;(2)创建上传脚本;(3)上传限制;(4)保存上传文件
具体我在后面文章PHP上传文件里做了总结
(七)Cookies
(1)简介
cookie常用于识别用户,是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送cookie。通过PHP,能够创建并取回cookie的值
(2)创建
setcookie()函数用于设置cookie,函数必须位于 <html> 标签之前
setcookie(name名称, value值, expire过期, path路径, domain域);实例:创建名为 "user" 的 cookie,把为它赋值 "Alex Porter",并规定了此cookie在一小时后过期
<?php setcookie("user", "Tony", time()+3600); ?> <html> <body>...</body> </html>注意:在发送cookie时,cookie的值会自动进行URL编码,在取回时进行自动解码(为防止URL编码,可以使用 setrawcookie()取代)
(3)检索
isset()函数可以检查是否已设置了cookie
<?php if (isset($_COOKIE["user"])){ echo "我设置的cookie为user:" . $_COOKIE["user"] ; }else{ echo "没有cookie数据"; } ?>
(4)获取cookie值
$_COOKIE 变量用于取回cookie的值
<?php echo $_COOKIE["user"];// 获取对应的某个cookie值 print_r($_COOKIE);// 获取所有的cookie ?>(5)删除cookie
删除cookie只需使过期日期变更为过去的时间点即可。例子:
<?php // 将到期日期设置为一小时前 setcookie("user", "", time()-3600); ?>(6)不支持cookie的解决方案
如果应用程序涉及不支持cookie的浏览器,那就不得不采取其他方法在应用程序中从一张页面向另一张页面传递信息。还有一种一种方式是从表单传递数据(有关表单和用户输入的内容,之前文章里介绍过了)
案例:例如表单在用户单击提交按钮时向 "welcome.php" 提交了用户输入:
<form action="welcome.php" method="post"> 姓名: <input type="text" name="name" /> 年龄: <input type="text" name="age" /> <input type="submit" value="提交"/> </form>取回 "welcome.php" 中的值,就像这样:
Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old.
(八)Sessions
主要内容包含(1)简介;(2)由来;(3)工作机制;(4)开启会话;
(5)存储和获取;(6)存储获取Session案例;(7)删除 / 释放Session
具体我在后面文章里做了总结
注意:启动会话session_start() 函数必须位于 <html> 标签之前,指的是在它之前应该没有任何输出,否则会报错
(九)E-mail电子邮件
由于篇幅问题,我在后面文章里做了总结
(十)安全电子邮件
防止 e-mail 注入的最好方法是对输入进行验证
可以使用PHP过滤器来对输入进行验证:
①FILTER_SANITIZE_EMAIL 从字符串中删除电子邮件的非法字符
②FILTER_VALIDATE_EMAIL 验证电子邮件地址
(十一)Error错误处理
【总结】
(1)include与require的使用场景
①require :当文件被应用程序请求时使用require,因为在框架、CMS或者复杂的PHP应用程序编程中,必须始终使用 require 向执行流引用关键文件。在某个关键文件意外丢失的情况下,这有助于提高应用程序的安全性和完整性。
②include:当文件不是必需,且应用程序在文件未找到时应该继续运行时使用include。因为如果希望继续执行,并向用户输出结果,即使包含文件已丢失,就得使用 include。
(2)PHP操作文件失误常见错误
①编辑错误的文件;②被垃圾数据填满硬盘;③意外删除文件内容
先写到这里,稍后完善
.
相关推荐
以下是对"PHP高级教程php详解"这一主题的详细解读: 一、PHP变量 PHP中的变量以$符号开头,可以存储各种类型的数据,如字符串、整型、浮点型、数组和对象。变量在声明时不需要预先指定类型,而是根据赋值自动确定。...
教程名称:PHP应用开发高级视频教程课程目录:【】第01课_开启PHP学习之路,融入新互联网时代【】第02课_PHP5.4.Apache.Mysql.搭配与多站点配置详解【】第03课_PHP5.4.语法、常量、变量、数据类型详解【】第04课_...
**PHP入门教程详解介绍** PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其在Web开发领域应用广泛。它的主要特点是语法简洁、学习曲线平缓,适合初学者快速上手。本文将深入浅出...
PHP100视频教程32:PHP5中Cookie与 Session详解 PHP100视频教程33:PHP5中图片验证码的制作(上) PHP100视频教程34:PHP5中图片中文验证码(下) PHP100视频教程35:PHP5文字图片混合水印与缩略图 PHP100视频...
### PHP 高级教程之日期与时间处理 #### 一、引言 在 PHP 开发中,处理日期和时间是一项非常常见的任务。无论是记录事件发生的时间、计算两个日期之间的差值,还是显示友好的日期格式,掌握 PHP 中的日期与时间处理...
**PHP高级教程与PHP手册详解** PHP(Hypertext Preprocessor)是一种广泛应用于Web开发的开源脚本语言,尤其在动态网站制作方面表现突出。它以其语法简洁、学习曲线平缓而深受开发者喜爱。本教程将针对PHP的高级...
总的来说,《PHP网络编程技术详解》是一本全面而实用的PHP教程,适合初学者入门,也对有一定经验的开发者提供有价值的参考。通过学习这本书,你将能够熟练掌握PHP编程,构建功能丰富的Web应用,并具备解决实际问题的...
《PHP开发语言详解:以php教程源码.zip为例》 PHP,全称为“Hypertext Preprocessor”,是一种广泛应用于Web开发的开源脚本语言。它以其语法简洁、学习曲线平缓以及与HTML的无缝集成而受到全球开发者的青睐。本文将...
### JasperReport初级教程(2.0.3)图文详解 #### 一、JasperReport简介与准备工作 **JasperReport**是一款开源的报表工具,它能够帮助开发者将数据以直观的方式展示出来,支持多种数据来源,并能导出为PDF、HTML、...
**深入详解PHP** PHP,全称“PHP:Hypertext Preprocessor”,是一种广泛使用的开源脚本语言,尤其在Web开发领域应用广泛。本教程将深入探讨PHP的核心概念、语法特性以及安全实践,帮助读者从入门到精通,全面理解...
其中包含的教程和实例旨在帮助开发者更好地理解和应用PHP,提升开发效率和项目质量。 PHP(Hypertext Preprocessor)是一种广泛应用于Web开发的开源脚本语言,以其简单、快速和灵活的特点深受开发者喜爱。它主要...
**PHP高级应用程序漏洞审核技术详解** 在深入探讨高级PHP应用程序漏洞审核技术之前,我们首先要理解PHP语言的基础。PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于Web开发,可以嵌入到...
### ZedGraph控件属性及基础教程详解 #### 一、概述 ZedGraph是一款功能强大的图表绘制控件,广泛应用于C# WinForm应用程序中。它不仅提供了丰富的自定义选项,还支持多种图表类型,包括但不限于柱状图、饼图和...
此外,文档还提到了PHP的一些高级特性,比如面向对象编程、各种框架(Yii框架、Tp框架等)、MVC框架详解等,并强调了学习PHP的多种途径,包括通过观看视频教程以及参与实际项目案例的开发来加深理解。这种结合理论与...
本教程将详细介绍如何创建、调用和管理MySQL存储过程,以及如何在PHP中操作它们。 首先,存储过程的创建涉及到以下几个关键点: 1. **创建语法**:创建存储过程以`CREATE PROCEDURE`开始,后跟存储过程的名称,...
### PHP高级知识点详解 #### 一、PHP日期处理 在PHP中处理日期是非常常见的需求,尤其是在需要格式化显示或者计算日期差的时候。`date()` 函数是PHP中用于格式化日期的强大工具。 - **语法**: `date(string_...
1. **全面覆盖**:教程内容全面覆盖PHP的基础知识和高级特性,帮助学习者建立起扎实的技术基础。 2. **详细讲解**:每一讲都围绕特定主题展开深入解析,确保学习者能够理解并掌握相关概念和技术。 3. **实践导向**:...
在本教程中,我们将深入了解Zend Framework框架中的Zend_Config组件,这是一款专门用于处理应用配置信息的工具。通过实例讲解,我们将会掌握Zend_Config组件的基本用法,并学习如何操作不同类型配置文件的方法。 ...