热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP实例教程(2):构建基于PHP的微博客服务

然后,创建一个简单的名为functions.php的PHP文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。
 创建输入表单

  设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:


  允许用户登录和添加贴子。


  将那些贴子转发给追随那个用户的人。


  允许用户追随其他用户。


  我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如
CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与
users、posts 和 following 表交互,然后从这两个模型开始继续前进。


  由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到
users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 jane、 tommy 和 bill。


  然后,创建一个简单的名为 functions.php 的 PHP
文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。


  如清单 5 所示,第一个函数是一个简单的函数,用于将内容添加到 posts 表中。


  清单 5. 用于将内容添加到 posts 表中的函数







function add_post($userid,$body){

$sql = "insert into posts (user_id, body, stamp) 

values ($userid, '". MySQL_real_escape_string($body). "',now())";


$result = mysql_query($sql);
}



   为了测试这个简单的函数,还需要添加另外两个 PHP 文件。一个是 index.php 文件,目前包含一个基本的小表单 —
后面将向页面添加更多内容。另一个 PHP 文件是 add.php,上述表单将被发布到该文件。清单 6 是 index.php 文件的摘录。请注意,在此使用一个
PHP 会话将一个用户 ID 值硬编码为 1,这是我的数据库中的用户 jane。现在这样做完全没有问题,但是在后面显然需要更改。


  清单 6. index.php 文件摘录








session_start();
include_once('header.php');

include_once('functions.php');



  设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:


  允许用户登录和添加贴子。


  将那些贴子转发给追随那个用户的人。


  允许用户追随其他用户。


  我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如
CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与
users、posts 和 following 表交互,然后从这两个模型开始继续前进。


  由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到
users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 jane、 tommy 和 bill。


  然后,创建一个简单的名为 functions.php 的 PHP
文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。

添加一系列的更新

  现在可以打开 functions.php 文件并在其中添??另一个函数。这一次,将函数命名为 show_posts()。它将显示特定用户 ID 的所有贴子,如下面的清单所示。

  清单 8. show_posts() 函数


function show_posts($userid){
$posts = array();

$sql = "select body, stamp from posts
where user_id = '$userid' order by stamp desc";
$result = mysql_query($sql);

while($data = mysql_fetch_object($result)){
$posts[] = array( 'stamp' => $data->stamp, 
'userid' => $userid, 
'body' => $data->body
);
}
return $posts;

}


  如果为这个函数传递一个用户 ID,它将在一个多维数组中按日期倒序的顺序返回那个用户发出的贴子。要使用该函数,只需在 index.php 上调用它,并检索那个用户的所有贴子。由于对于每个记录只需处理少量的数据,这种查询可以很好地进行扩展。

  清单 9 是添加到 index.php 页面的代码,这些代码就放在前面添加的表单之后。通过使用 show_posts() 函数和会话变量,可以获得登录的用户发出的所有贴子。如果没有贴子,则显示某种错误消息。如果有贴子,则在一个表中逐个显示它们 — 或者,如果想别致一点,可以使用自己的级联样式表(CSS)。

  清单 9. 在 index.php 页面上显示贴子

$posts = show_posts(


  设置好后端表之后,就可以考虑处理数据插入和更新的 PHP。现在需要的是一些简单的函数,这些函数将:

  允许用户登录和添加贴子。

  将那些贴子转发给追随那个用户的人。

  允许用户追随其他用户。

  我通常在模型-视图-控制器(Model-View-Controller,MVC)应用程序框架(例如 CodeIgniter)的上下文中工作,因为它提供了一套工具用于创建这些类型的应用程序。例如,我一般先创建两个模型(一个用于用户,另一个用于贴子),这两个模型使我可以与 users、posts 和 following 表交互,然后从这两个模型开始继续前进。

  由于您可能已经在使用不同的框架,所以我决定在此不使用上述方法。相反,我选择一种更简单的、独立于框架的方法。对于本文,我们走走捷径,直接将记录添加到 users 表中,以创建一系列测试用户,供应用程序使用。我创建 3 个用户,并将他们的用户名设为 jane、 tommy 和 bill。

  然后,创建一个简单的名为 functions.php 的 PHP 文件,该文件将包含主要的功能。在该文件中要创建少量的函数,以支持微博客应用程序上下文中的动作。

 


推荐阅读
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 本文详细解析了MySQL中常见的几种错误,并提供了具体的解决方法,帮助开发者快速定位和解决问题。 ... [详细]
  • 本文介绍了如何通过安装 sqlacodegen 和 pymysql 来根据现有的 MySQL 数据库自动生成 ORM 的模型文件(model.py)。此方法适用于需要快速搭建项目模型层的情况。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细探讨了在Web开发中常见的UTF-8编码问题及其解决方案,包括HTML页面、PHP脚本、MySQL数据库以及JavaScript和Flash应用中的乱码问题。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文介绍了多种开源数据库及其核心数据结构和算法,包括MySQL的B+树、MVCC和WAL,MongoDB的tokuDB和cola,boltDB的追加仅树和mmap,levelDB的LSM树,以及内存缓存中的一致性哈希。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • HTML:  将文件拖拽到此区域 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
author-avatar
林润林_744
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有