PHP高级教程详解

【前言】

      本文总结下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操作文件失误常见错误

   ①编辑错误的文件;②被垃圾数据填满硬盘;③意外删除文件内容

 

 

 

先写到这里,稍后完善

.

猜你喜欢

转载自570109268.iteye.com/blog/2412776