OOP编程php实例

index.php

<?php
// 引入公用函数库
include './include/functions.php';

// 引入文章类
include './include/Article.class.php';


// 三元表达式:如果m存在就按提交的数据显示,不存在就显示首页
$method = isset($_GET['m']) ? $_GET['m'] : 'index';
// 实例化文章类
$obj = new Article();
// 访问对应的方法
$obj->$method();
?>

Article.class.php

<?php

class Article{
// 创建一个文章类	
	public function index(){
	//首页
		$db = include "./db.php";
		// 引入数据文件
		include "./template/index.html";
	}
	
	public function add(){
		if(IS_POST){
		//如果有POST提交数据
			$db = include "./db.php";
			// 引入数据文件
			$data = array( 
			//将提交数据组合成一个新数组
				'title' => htmlspecialchars($_POST['title']),
				//文章标题
				'content' => htmlspecialchars($_POST['content']),
				//文章内容
				'time'   => date('Y-m-d H:i:s')//文章发布时间
			);
			array_unshift($db, $data);
			// 将新输入压入数据文件的开头位置
			$newDb = var_export($db, TRUE); 
			// 标准化数组
	$str = <<<mark
<?php
return $newDb;
mark;
	file_put_contents('./db.php', $str); 
	// 输出到数据文件
	success('发布成功','./index.php');
	// 发布成功跳转
}
		
		include "./template/addShow.html";
		// 如果没提交内容就显示模板内容
	}
	
	public function edit(){
	   //编辑
		$db = include "./db.php";
		// 引入数据文件
		//如果GET提交含有m且参数是edit,存在aid且转换整型后小于数组当前的总数
	if($_GET['m']=='edit' && isset($_GET['aid']) && intval($_GET['aid'])<=count($db)){
	if(IS_POST){ 
	// 如果有提交内容
	$data = array( 
	//将提交内容组合成一个新数组
	'title' => htmlspecialchars($_POST['title']), 
	//文章标题
	'content' => htmlspecialchars($_POST['content']), 
	//文章内容
	'time'      => date('Y-m-d H:i:s')
			// 文章发布时间
);
	$db[$_GET['aid']] = $data;
	//将新内容按索引覆盖原先的数组
	$newDb = var_export($db, TRUE);
	//将新数组标准化
	$str = <<<mark
<?php
return $newDb;
mark;
	file_put_contents('./db.php', $str);
	//重新输出到数据文件
	success('修改成功','./index.php');
	//修改成功后跳转到首页
}
	include "./template/editShow.html";
	//如果没提交内容就显示编辑模板
		}elseif (!isset($db[$_GET['aid']])){
		//如果要编辑的ID不存在了就返回错误
			error('文章不存在','./index.php');
		}else{
		//如果GET参数不符合上面的规则就返回非法参数
			error('非法参数','./index.php');
		}
	}
	
	public function del(){ 
	//删除
		$db = include "./db.php";
		// 引入数据文件
		//如果GET提交含有m且参数是edit,存在aid且转换整型后小于数组当前的总数
		if($_GET['m']=='del' && isset($_GET['aid']) && intval($_GET['aid'])<=count($db)){
			unset($db[$_GET['aid']]);
			//将数据文件里的指定aid删除
			$newDb = var_export($db,TRUE);
			//将数据文件里的内容重新标准化
	$str = <<<mark
<?php
return $newDb;
mark;
	file_put_contents('./db.php', $str);
	//输出到数据文件
	success('删除成功','./index.php');
	//删除成功后返回首页
	}elseif (!isset($db[$_GET['aid']])){
	//如果要删除的id不存在就返回错误
	error('文章不存在','./index.php');
	}else{
	error('非法参数','./index.php');
	//如果都不符合,也返回错误跳转到首页
		}
	}
	
	public function show(){
	//显示内容页
		$db = include "./db.php";
		// 引入数据文件
		include "./template/show.html";
		//引入内容展示模板
	}
	
}

?>

数据文件db.php

<?php
return array (
  0 => 
  array (
    'title' => '如何创建浮动式标签模式?',
    'content' => 'Matt Smith分享了一种新颖的表单交互模式,也就是我们所说的浮动式标签。在这种模式中,当用户聚焦于某个输入框并输入内容之后,原有的内联标签就会“浮”到已输入的内容之上。这种超赞模式值得我们去学习!',
    'time' => '2014-04-23 13:37:42',
  ),
  1 => 
  array (
    'title' => '设计师专宠,Startup强大的UI设计框架',
    'content' => 'Startup Framework是由Designmodo团队历经9个月开发而出的一款功能强大的UI设计框架,旨在帮助设计师设计出新颖且与众不同的网站。 ',
    'time' => '2014-04-23 14:54:27',
  ),
  2 => 
  array (
    'title' => 'EDP:基于Node.JS与NPM的企业级开发平台',
    'content' => 'EDP是一个基于Node.JS与NPM的企业级前端应用的开发平台,主要通过命令行的方式使用。EDP允许用户自定义自己的扩展。当默认提供的工具无法完全满足开发的需求时,用户可以开发自己的扩展命令。',
    'time' => '2014-04-23 13:29:08',
  ),
  3 => 
  array (
    'title' => '挑战最强大脑——来自全球的14个编码社区',
    'content' => '
    思考问题有新的思维方式;
    学到一门新语言;
    提升解决方法的能力;
    激发大脑灵感、专注;
    有趣!
',
    'time' => '2014-04-23 13:28:39',
  ),
  4 => 
  array (
    'title' => '如期而至,GCC 4.9.0正式版发布!',
    'content' => '
    诊断信息支持彩色显示; 
    C和C++编译器支持OpenMP 4.0规格;
    改进C++11和C++1y支持;
    支持Power ISA 2.07及硬件事务性内存;
    移除mudflap运行时检查器,mudflap选项保留,但没有任何效果;
    一些很老的系统和不维护的平台在4.9 版本中声明为过世的,下一个版本将永久删除,包括Solaris 9。
',
    'time' => '2014-04-23 13:28:03',
  ),
  5 => 
  array (
    'title' => '为什么不用C#做服务器开发?',
    'content' => 'C#是微软面向对象开发语言,紧紧只能用于window系统,好处是微软本身封装的比较完整,学习及开发比较容易上手,容易精通,但不支持跨平台,并且难于扩展。同时Windows系统本身庞大,易于感染病毒且防攻击能力较弱,维护成本高。所以阻碍了C#作为服务器开发语言的应用。',
    'time' => '2014-04-23 12:29:10',
  ),
  6 => 
  array (
    'title' => '同学们知道什么是静态语言?什么是动态语言?',
    'content' => '
    静态语言是需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C++/Java/C#;
    而动态语言指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。
',
    'time' => '2014-04-23 12:28:34',
  ),
  7 => 
  array (
    'title' => ' 什么是代码可移植性?',
    'content' => '软件可移植性指与软件从某一环境转移到另一环境下的难易程度。为获得较高的可移植性,在设计过程中常采用通用的程序设计语言和运行支撑环境。尽量不用与系统的底层相关性强的语言。可移植性是软件质量之一,良好的可移植性可以提高软件的生命周期。',
    'time' => '2014-04-23 12:28:10',
  ),
);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值