PHP高级教程(一)

多维数组

多维数组指的是包含一个或多个数组的数组。
PHP 能理解两、三、四或五级甚至更多级的多维数组。
数组的维度指示您需要选择元素的索引数。

  • 对于二维数组,您需要两个索引来选取元素
  • 对于三维数组,您需要三个索引来选取元素
$cars = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

可以在 For 循环中使用另一个 For 循环,来获得 $cars 数组中的元素(我们仍需使用两个索引):

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Row number $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>".$cars[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>

日期和时间

  1. Date() 函数
    Date() 函数把时间戳格式化为更易读的日期和时间。
    时间戳是一种字符序列,它表示具体事件发生的日期和事件。
    date(format,timestamp)

    date() 函数会返回服务器的当前日期/时间!

a. 获得简单的日期
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:

  • d - 表示月里的某天(01-31)
  • m - 表示月(01-12)
  • Y - 表示年(四位数)
  • 1 - 表示周里的某天
    其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。

b. 自动版权年份
网站下面的那个
© 2010-<?php echo date("Y")?>
c. 获得简单的时间
下面是常用于时间的字符:

  • h - 带有首位零的 12 小时小时格式
  • i - 带有首位零的分钟
  • s - 带有首位零的秒(00 -59)
  • a - 小写的午前和午后(am 或 pm)
    下面的例子以指定的格式输出当前时间:

  1. mktime() 返回日期的 Unix 时间戳
    mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。
    mktime(hour,minute,second,month,day,year)

  2. strtotime() 把字符串转换为 Unix 时间戳

Include 文件包含

服务器端包含 (SSI) 用于创建可在多个页面重复使用的函数、页眉、页脚或元素。
include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
包含文件很有用,如果您需要在网站的多张页面上引用相同的 PHP、HTML 或文本的话。
include 和 require 语句
通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。
include 和 require 语句是相同的,除了错误处理方面:

  • require 会生成致命错误(E_COMPILE_ERROR)并停止脚本
  • include 只生成警告(E_WARNING),并且脚本会继续
    include 'filename';
    require 'filename';

include 实例
假设我们有一个名为 "footer.php" 的标准的页脚文件,就像这样:

如需在一张页面中引用这个页脚文件,请使用 include 语句:

请在此时使用 require:当文件被应用程序请求时。
请在此时使用 include:当文件不是必需的,且应用程序在文件未找到时应该继续运行时。

文件处理

PHP 拥有的多种函数可供创建、读取、上传以及编辑文件。

文件读取/打开

  1. readfile() 读取文件
    readfile() 函数读取文件,并把它写入输出缓冲。
    如果您想做的所有事情就是打开一个文件并读取器内容,那么 readfile() 函数很有用。
    假设我们有一个名为 "webdictionary.txt" 的文本文件,存放在服务器上,就像这样:

读取此文件并写到输出流的 PHP 代码如下(如读取成功则 readfile() 函数返回字节数):

  1. fopen() 打开文件
    fopen() 的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式。
    fopen("webdictionary.txt", "r")

模式

  1. fread() 读取文件
    fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。
    fread($myfile,filesize("webdictionary.txt"));

  2. fclose() 关闭文件
    fclose() 函数用于关闭打开的文件。
    将用完的文件关闭可以减少不必要的服务器资源占用
    fclose($myfile);

  3. fgets() 读取单行文件
    fgets() 函数用于从文件读取单行。
    下例输出 "webdictionary.txt" 文件的首行:

    调用 fgets() 函数之后,文件指针会移动到下一行。所以,你可以通过for循环输出文件的一行行内容。

  4. feof() 检查 End-Of-File文件尾
    feof() 函数检查是否已到达 "end-of-file" (EOF)。
    feof() 对于遍历未知长度的数据很有用。
    下例逐行读取 "webdictionary.txt" 文件,直到 end-of-file:

  5. fgetc() 读取单字符
    fgetc() 函数用于从文件中读取单个字符。
    和fgets()一样,调用后文件指针会移动到下一个字符。
    下例逐字符读取 "webdictionary.txt" 文件,直到 end-of-file:

文件创建/写入

  1. fopen() 创建文件
    在 PHP 中,创建文件所用的函数与打开文件的相同。
    如果用 fopen() 打开并不存在的文件,此函数会创建文件,假定文件被打开为写入(w)或增加(a)。
    下面的例子创建名为 "testfile.txt" 的新文件。此文件将被创建于 PHP 代码所在的相同目录中:
    $myfile = fopen("testfile.txt", "w")
    如果运行这段代码时发生错误,请检查是否有向硬盘写入信息的 PHP 文件访问权限。
  2. fwrite() 写入文件
    fwrite() 的第一个参数包含要写入的文件的文件名,第二个参数是被写的字符串。
    fwrite($myfile, $txt);
    如果一个PHP文件中对同一个文件调用两次写入函数,那第二次写入内容加在第一次后面
    而,如果执行PHP文件前,待写入文件已有内容,那么会被覆盖

文件上传

一个文件上传表单

  • enctype
    <form> 标签的 enctype 属性规定了在提交表单时,数据如何编码。
    默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。

  • type="file"
    <input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

  1. 创建上传脚本

    $_FILES,第一个参数是上传表单中<input> 标签的name值,第二个下标可以是 "name", "type", "size", "tmp_name" 或 "error"。就像这样:

  2. 上传限制
    增加对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:

  3. 保存被上传的文件
    上面的例子在服务器的 PHP 临时文件夹tmp创建了一个被上传文件的临时副本。
    这个临时的复制文件会在脚本执行结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:

上面的脚本检测了是否已存在此文件,如果不存在,则把文件拷贝到指定的文件夹。

原文地址:https://www.cnblogs.com/Rain99-/p/13046594.html