logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

GLightbox is a pure javascript lightbox (Colorbox alternative without jQuery)❗

It can display images, iframes, inline content and videos with optional autoplay for YouTube, Vimeo and even self-hosted videos.

Demo GLightbox Download GLightbox

滚动

PHP课程 - 第11课 - 字符串与数组操作函数

09/10/2025, by Ivan

我们已经学习了不同的数据类型,以及一些用于操作它们的函数。实际上,PHP 内置了大量的现成函数,要完全掌握它们可能需要几本书的篇幅。因此,在这里我们只讲解其中一些最常用的函数。从将数组转换为字符串、以及再从字符串转换回数组开始。

PHP:使用 implode() 将数组转换为字符串

我们来看一个例子:

PHP课程 - 第12课 - 循环语句 while、foreach、for

09/10/2025, by Ivan

在编程中,乃至在生活中,我们经常会遇到需要重复执行某些操作直到获得满意结果的情况。在生活里我们可能称之为“折磨”,而在编程中它被称为循环(loop)。循环在 PHP 中非常常见,它是遍历数组、计算函数以及执行各种重复任务的便利方式。我们先从最简单、最常用的 while 循环开始学习。

PHP while 循环

while 循环非常简单。括号中写条件,花括号中写当条件成立时要执行的代码。条件是一个逻辑表达式,它的结果要么是 TRUE,要么是 FALSE。如果你还不熟悉逻辑表达式,可以回顾一下关于 if 运算符的课程。下面是一个简单的 while 示例:

PHP课程 - 第13课 - 面向对象编程(OOP)基础

09/10/2025, by Ivan

在之前的课程中,我们已经学习过 PHP 的几种数据类型:布尔型、整型、浮点型、字符串和数组。在本课中,我们将了解 PHP 中另一种非常重要的数据类型 —— 对象(object)
对象在某种程度上类似于数组,因为对象中也可以包含不同类型的数据,比如数字、文本、数组,甚至其他对象。

对象就像数组一样可以包含各种数据,这些数据称为对象的 属性(properties)。同时,对象还可以包含函数,这些函数称为 方法(methods)

不过,对象与数组有两个显著的区别:

1. 对象可以包含方法。

方法是以对象的名义调用的函数。将函数绑定到对象,使得对象不仅可以存储数据,还可以定义能够对这些数据执行的操作。

2. 对象是从类创建的。

在创建对象之前,我们必须先定义一个 类(class)。类中描述了对象将拥有的属性和方法。这样我们就能明确对象的结构,清楚对象应该保存哪些数据以及可以执行哪些操作。当我们通过类创建对象时,可以在创建时为对象赋予初始值,这样新生成的对象就不是空的。

PHP课程 - 第2部分 - 表单、文件、会话与安全性

09/10/2025, by Ivan

如果你已经学习了 PHP 教程的第一部分,那么你至少已经掌握了 PHP 的基本编写方法。在这一部分中,我们将更深入地学习语言的各个方面,主要包括:

  1. PHP 表单操作
  2. PHP 文件操作
  3. PHP Cookies
  4. PHP 会话(Sessions)
  5. 邮件处理(Email)
  6. PHP 安全性

不过,我们不会像传统教材那样分别单独学习每一项功能。相反,我们将把这些知识综合运用起来,创建一个小型的网站项目。不过我要提前说明,这个网站并非为实际使用而设计,它的主要目的在于教学与练习。如果你想搭建真正的网站,建议使用现成的 CMS 或框架。

那么,一如既往,我们将从简单的内容开始,逐步过渡到更复杂的主题。

PHP课程 - 第1课 - 表单操作

09/10/2025, by Ivan

在日常生活中,我们通过电视、广播、互联网或面对面的交流来获取信息。网站也需要从用户那里获取信息,但它们通过一种特殊的方式来实现——表单。表单可以类比为问卷调查或官方申请表。虽然表单的元素类型有限,但它们能让网站收集到所有必要的信息以完成交互。

为了更好地理解本课内容,建议你先学习 HTML 表单的创建方法。

在开始第一个 PHP 课程之前,我们先创建一个程序框架,也就是一个用于控制网站运行的类。

创建一个名为 class 的文件夹,并在其中放置一个文件 simpleCMS.php,它将包含我们的网站控制类。同时创建一个 index.php 文件用于启动该系统。我们还需要创建一个用于保存消息的空文件夹 messages,以及样式文件 style.css。结构如下:

class/simpleCMS.php

messages/

index.php

style.css

PHP课程 - 第2课 - 文件操作:打开、写入与读取。

09/10/2025, by Ivan

在上一课中,我们已经为我们的留言簿、博客或聊天室搭建了框架。现在只需继续添加功能。在本课中,我们将学习如何将我们的内容写入文件,并从文件中读取内容。

PHP 提供了大量用于文件操作的函数,我们只会学习其中一部分。因为在实际项目中,你的网站大多数情况下会将数据保存到数据库中(我非常确定),而不是写入文件。不过,了解文件操作的原理有助于理解 PHP 的基本机制。之后我们会学习如何操作数据库。

如果你还没有上节课创建的那些文件,请先返回上一课并下载它们。

现在让我们进入添加记录的表单:

/index.php?admin=1

我们将通过这个表单来添加内容。要处理提交的数据,我们需要在 index.php 页面上检查是否存在 $_POST 变量。检查方法非常简单:

PHP课程 - 第3课 - 使用 MySQL 数据库。

09/10/2025, by Ivan

你可能觉得现在开始第三课直接学习 MySQL 数据库有点早,但相信我并不是这样。学习 PHP 作为一种 Web 编程语言而不学习它与数据库的交互,就像有一台没有互联网的电脑。你可以在这样的电脑上工作,但却无法获取任何信息。因此,让我们鼓起勇气,即使现在对 SQL 一无所知,也要开始编写数据库查询语句吧。

SQLStructured Query Language —— “结构化查询语言”)是一种通用的计算机语言,用于在关系型数据库中创建、修改和管理数据。SQL 基于表中记录的集合操作。

PHP 可以与多种数据库一起工作,例如:MySQL、PostgreSQL、Oracle 等等。我们将学习 PHP 与 MySQL 的配合,因为这种组合在网站开发中最为常见。同时,学习 MySQL 的操作也能让你轻松掌握其他数据库的使用,因为 SQL 是一种通用语言,几乎所有关系型数据库的语法都相似。

PHP课程 - 第3.1课 - 使用 MySQL 数据库。创建数据表。

09/10/2025, by Ivan

在上一课中,我们学习了如何与数据库建立连接。本课我们将为我们未来的网站创建数据表。首先,在 simpleCMS 类中添加数据库名称:

class simpleCMS {  // 管理类

  public $host = 'localhost'; // 数据库连接变量
  public $username = 'root';
  public $password = '';
  public $db = 'testDB';

现在我们需要在 MySQL 服务器上创建这个数据库。如果你使用的是 Denwer,本地环境已经包含了 phpMyAdmin。打开 phpMyAdmin 并创建一个新数据库:

PhpMyAdmin

PHP课程 - 第3.2课 - 使用 MySQL 数据库。INSERT INTO 插入数据与 SELECT 查询数据。

09/10/2025, by Ivan

在上一课中,我们为我们的网站创建了一个数据库表。在本课中,我们将改进该表,并开始与数据库交互:向其中插入数据以及从表中读取数据。我想这并不复杂,所以让我们开始吧。

首先,我建议改进一下我们的 messages 表。目前表中已经有了数据字段,但我们还需要一个用于记录编号的字段。如果你打开 Drupal 的数据库,会发现 node 表中有一个 nid 字段,用来编号节点。同样,我们也需要在 messages 表中添加这样的编号字段。

让我们进入 phpMyAdmin(在 Denwer 中为 http://localhost/tools/phpmyadmin)并编辑表格。在表的开头添加一列,如下图所示:

PHP课程 - 第3.3课 - 使用 MySQL 数据库。UPDATE 更新数据。

09/10/2025, by Ivan

我们已经学习了 MySQL 的 SELECTINSERT INTO 操作符,现在是时候了解如何更新已存入数据库的数据了。为此,我们将使用 SQL 操作符 UPDATE。但首先,我们需要修改 index.php 文件,添加一个新的路径处理。找到如下代码:

      if( $_GET['admin'] == 1 ){ // 如果 URL 中存在 admin 参数
	    print $obj->display_admin(); // 如果存在该参数,显示添加表单
	  }else{
	    print $obj->display_public(); // 如果没有该参数,显示消息
	  }

将其替换为以下代码: