逻辑。普通的HTML页面只依赖于Web服务器,而PHP、ASP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。PHP、ASP、JSP两者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
然而,相较与ASP,JSP,PHP有其便于部署,可快速开发并且使用灵活等特点。比较适合于做中小型系统的快速开发,同等相较于JSP,PHP由于没有那么复杂的处理,所以在一定程度上执行速度优于JSP。
4.2方案选择
综上所述,本系统开发选择方案如下:
本图片共享系统采用PHP、JavaScript作为主要程序开发语言,采用smarttemplate+独立后台管理模版的构架,mysql数据库。采用B/S结构。系统界面美观内容丰富,很好的实现了与用户的交互。
4.3系统技术平台
开发环境:WindowsServer2003DatacenterEditionSP1、MySql4.2、Apache2;
开发工具:ZendStudio、DreamweaverMX、PhotoShop、记事本;
系统构架:PHP+Smarttemplate+JavaScript+MySql4.2;
开发语言:PHP5。
4.4开发环境搭建
*配置PHP5
将从网络上下载下来的文件解包,然后需要以下操作:
打开php.ini文件,修改以下内容:
max_execution_time=600;
max_input_time=600;
memory_limit=16M
post_max_size=20M
file_uploads=On
upload_max_filesize=20M
default_socket_timeout=60
以上选项避免由于用户上传过大的图片导致PHP处理超时。
register_globals=Off
magic_quotes_gpc=On
以上选项为防止用户恶意提交。
extension_dir="D:\PHP\PHP\ext"
以上选项用于设定PHP的扩展所在文件夹。
extension=php_mbstring.dll
该扩展用于支持长字符集
extension=php_exif.dll
该扩展用于支持PHP读取图片的EXIF信息。
extension=php_gd2.dll
该扩展用于PHP对图片的操作以及验证码的生成操作。
extension=php_mysql.dll
extension=php_mysqli.dll以上两项用于PHP对MYSQL的支持
extension=php_sockets.dll
该扩展用于PHP对SOCKET的支持,主要用于支持上传时显示上传进度的UPU库
*Apache2.0
将从网络上下载下来的文件解包,然后需要以下操作:
1)修改Apache的配置文件:
进入到解包根目录下的conf目录。打开httpd.conf文件,修改以下内容:
设置执行超时: Timeout300
设置监听80端口: Listen80
开启APACHE对PHP的支持:
LoadModulephp5_moduled:/php/php/php5apache2.dll
开启URL重写功能:LoadModulerewrite_modulemodules/mod_rewrite.so
设定WEB服务的根目录: DocumentRoot"E:\web"
设置URL重写所生效的范围:
OptionsFollowSymLinks
AllowOverrideALL
设置中文支持:
AddLanguagezh-CN.zh-cn
AddLanguagezh-TW.zh-tw
AddLanguagezh-cn.cn
设置默认语言
AddDefaultCharsetGB2312
设置默认索引页:
DirectoryIndexindex.htmlindex.html.varindex.htmindex.php
设置APACHE对PHP文件进行解析:
AddTypeapplication/x-httpd-php.php
2)将APACHE安装为服务:
进入命令行,转到APACHE文件夹下的BIN文件夹,执行以下命令:
apache-kinstall
3)启动APACHE服务器
执行以下命令:
netstartapache2
*mysql安装
1)将从网上下载的MYSQL解包,然后修改其配置文件如下:
default-character-set=utf8 //由于整个系统均使用UTF-8,故数据库也统一文字编码
key_buffer_size=20M
max_allowed_packet=15M //以上设置用于处理将图片存入数据库的大量信息数据。
2)运行MySQLInstanceConfig.exe对MYSQL进行初始化设置。
3)安装MYSQL服务
执行mysql d-nt.exe-install将MYSQL进程作为系统服务运行。
4)使用MYSQLADMIN对MYSQL的管理员进行管理
*PHPMYADMIN配置
找到phpmysdmin的配置文件,修改以下地方。
$cfg['Servers'][$i]['host']='localhost';//设置为本机(只做调试用)
$cfg['Servers'][$i]['port']='3306';//MySQL的端口
$cfg['Servers'][$i]['connect_type']='tcp';//设置与MySQL连接的方式
$cfg['Servers'][$i]['compress']=FALSE;//使用压缩协议进行传输
$cfg['Servers'][$i]['auth_type']='config';//如果PHP安装模式为Apache,可以使用http和cookie;如果PHP安装模式为CGI,可以使用cookie;默认为config
$cfg['Servers'][$i]['user']='root';//MySQL连接用户
$cfg['Servers'][$i]['password']='';//MySQL连接密码
5实现技术与数据结构
5.1系统架构设计
5.1.1网络架构
整个网络架构体系如下图:
图5-1图片共享系统网络构架图
5.1.2系统逻辑服务器
在逻辑上可以将使用的服务器分为三类,每类服务器均有不同的功能:
Web服务器:该服务器进行Web发布,提供用于普通用户业务工作的操作界面(网页),亦将用户的操作参数通过处理后生成的数据库查询传递回数据库服务器,同时亦将结果在经过解析以及重新编码后生成的数据通过网页的方式返回到用户前端。同时,该WEB服务器还负责解析用户的请求以及动态的生成用户所能看见的Web页面。
数据库服务器:该服务器上安装了MySQL数据库系统,数据库系统的设计主要针对该服务器。在此存放着所有的原始数据及用于系统的其它结构数据,所有的用户及管理者对信息的新增,修改,删除最终都将反映在该服务器上。同时,该服务器需要处理通过WEB服务器传输来的查询请求,并将查询结果返回给应用服务器。
5.2系统处理流程
本系统采用B/S模式,Smartemplate构架,用户使用本系统时,只需要安装上网的浏览器即可,不需要安装其它任何软件。系统处理流程如下图所示:
图5-2系统处理流程
5.2.1基于MVC的Smartemplate架构
本系统采用基于MVC的构架实现。模型由实现业务逻辑的PHP解析脚本构成,控制器由SmartTemplate来实现,视图由一组含有SmartTemplate格式标签的HTML文件构成。下图简要描述了工作流程。
图5-3响应用户请求的工作流程
MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC把应用程序分成三个核心模块:模型、视图和控制器,它们之间的相互关系如下图所示:
图5-4MVC设计模式
5.2.2SmartTemplate技术概述
在这个系统制作过程中,大量采用了SmartTemplate技术,现就自己对SmartTemplate技术的理解表述如下:
SmartTemplate是一个支持大型WEB应用程序的模板引擎,是由服务器端调用和执行的PHP库。SmartTemplate本身与协议无关。
要理解SmartTemplate,首先需要理解模板引擎的工作方式。
普通模板引擎工作方式:你的PHP脚本指定一个HTML模板,指定动态内容并显示。模板分析器使用指派的内容替换模板内所有的占位符,然后显示给用户。
SmartTemplate的工作方式类似模板编译,他把模板转换为可执行的PHP脚本,并且保存起来以备以后重用。当一个新的模板在第一次被使用时,模板内所有的占位符被替换为简单的可输出指定内容的PHP代码元素。举个例子,模板片断
{TITLE}
,将被转换为
.如果你指定内容给正确的变量,将再也不需要进行模板分析了.程序要做的仅仅是自己包含并执行编译后的模板.这种缓存方式能大大减少模板引擎的运行时间。
5.2.3SmartTemplate与html模版之间的关系
为了增强系统的移植性,使系统能在Windows、NT、UNIX及Linux环境下运行而不进行源代码的修改,采用PHP技术。开发基于WEB的软件系统,采用PHP脚本工具,用PHP的动态库连接访问数据
上一篇:
SQL数据库课程设计学生选课(论文和程序)
下一篇:
梅奥的人际关系学说与我国的人本管理