- 相关推荐
php知识框架总结
篇一:php基础知识点总结
PHP语言基础简单整理
1.开始结束标记的格式只有在没有判断语句时才能使用。
对表单传递的变量进行编码和解码:PHP中实现对查询字符串进行URL编码可以通过函数urlencode()实现,该函数的使用格式如下:string urlencode(string str);对URL编码后的查询字符串进行解码,可以通过urldecode()函数实现,该函数的使用格式如下:string urldecode(string str);
15.PHP连接数据库:
步骤: 一、建立连接------mssql_connect(server,uid,pwd);
二、指定database-------mssql_select_db(databasename);
三、执行sql------mssql_query($sql,$link);
四、处理记录集-------资源类型数据,格式:bof---数据---eof
五、以特定格式读取数据-----mssql_fetch_array()....
六、释放相关资源、关闭连接------mssql_free_result($result);mssql_close();
16.数组:php的数组由键值和value值组成
定义:$array = array("键值"=>"value","键值"=>"value","键值"=>"value");如果不给键值赋值,默认从0开始的int值
相关函数:(1)in_array("值",数组名); 返回bool型-----查看数组中是否存在某value值
(2)array_key_exists("key值",数组名); 返回bool型-----查看数组中是否存在某键值
(3)array_keys(数组名);---将数组键值返回出来形成一个新数组,此键值作为新数组的value值
(4)array_values(数组名);---将数组value值返回出来形成一个新数组,此值作为新数组的value值
(5)key(数组名);----返回当前指针指向的元素key值
(6)current(数组名);----返回当前指针指向的元素value值
(7)next(数组名);----挪动当前数组指针到下一步
(8)reset(数组名);----恢复数组指针,指向第0个元素
(9)end(数组名);----将指针挪向最后一个元素
(10)prev(数组名);----将指针向前挪动一位
(11)foreach(数组名 as $key=>$value)
{
$key是键值,$value是value值,实现数组遍历
}
(12)each(数组名);----将当前数组元素依次取出(自动挪动指针)并放到一个新的数组中
(13)array_shift(数组名);----返回数组中第一个元素值
(14)array_pop(数组名);----返回数组最后一个元素值
(15)array_push(数组名,value);----向数组中追加元素
(16)array_unshift(数组名,value);----在数组最前面添加元素
(17)array_pad(数组名,数组长度,value);----向数组中追加多个元素,对数组副本操作,不改变原数组,返回一个新数组
(18)count();----返回个数
(19)array_unique(数组名);----去掉数组中重复部分,操作数组副本,不改变原数组,返回新数组
(20)sort(数组名);----从小到大升序排列数组value值,一般针对int型value值,返回bool型,成功返回true
(21)rsort(数组名);----从大到小,逆序排列数组value值
(22)array_combine(数组1,数组2);----将数组1的value值作为key,数组2的value值作为value值,形成一个新数组
(23)array_merge(数组1,数组2,数组3...);----合并多个数组,将多个数组value值依次合并,合为一个数组
(24)array_slice(数组名,int,int);----从目标数组截取元素,形成一个新数组。开始位置为第二个参数,结束位置为第三个参数。若第三个参数不写,则默认是截取到最后。
(25)array_splice();----用法同array_slice();但是其截取部分从原数组中删除
(26)explode("字符依据",目标字符串);----将字符串按照一定的依据拆分成数组
(27)implode("字符依据",目标数组);----将数组元素按照依据组合成一个字符串
(28)range(mixed low,mixed high[number step]);----生成数组,例:range(1,100,8);---即从1到100,每8位取一个数,组成一个数组
(29)shuffle(数组名);----用于将数组进行随机排序
(30)array_sum(数组名);----对数值型数组元素值进行求和
(31)array_chunk(数组名,int);----分割目标数组,返回一个新数组,其中数组的每个元素都是一个一维数组,int参数为分割成的一维数组的长度
17.Cookie和会话控制:
Cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie是由Web服务器保存在客户机上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web站点都可以访问Cookie信息。
存在server端的是session,存在client端的是cookie,它们用来存储全局变量。 设定Cookie值:setcookie("名","值");
通过Cookie数组取值:$_cookie["名"];
设置生成期:setcookie("名","值",time()+1800);生成期为当前时间加1800秒之后。
删除cookie: setcookie("名","",time()-3600);中间值设置为空,并将当前时间减去3600秒。 Cookie数组:setcookie("名[key]","值"); 使用foreach读取。
在PHP中可以通过$_COOKIE预定义变量访问Cookie的值。如果设置了php.ini中的register_long_arrays,那么就能够应用$_COOKIE和$HTTP_COOKIE_VARS;如果在php.ini中还设置了register_globals,那么就可以在PHP中作为全局变量使用各个Cookie值。但是,更改php.ini中的两个文件设置,容易对PHP的安全构成威胁,不推荐使用该方法,建议使用更新的$_COOKIE。
会话ID的传送
会话ID的传送有两种方式,一种是Cookie方式,另一种是URL方式。
Cookie传送方式:
这是最简单的会话方式,但是有些客户可能限制使用Cookie,如果客户限制使用Cookie的条件下,仍要继续工作,那就要通过其他方式来实现了。
URL传送方式:
在该方式中,URL本身用来传送会话,会话标志被简单地附加到URL的尾部,或者作为窗体中的一个变量来传递。例:ADD">">ADD
会话ID的生成:
PHP的会话函数会自动处理ID的创建,但也可以通过手工方式创建会话ID。它必须是不容易被人猜出来的,否则有安全隐患。
一般推荐生成会话ID使用随机数发生器函数srand(),函数声明如下:
srand((double)microtime()*1000000);
在调用该函数后,要想生成一个唯一的会话ID,还必须使用下面的语句:
md5(unique(rand()));
Session会话:
创建会话的步骤:启动一个会话,注册会话变量,使用会话变量和注销会话变量。
(1)启动一个会话:》通过session_start();函数创建会话,函数声明为:bool session_start(void);
》通过设置php.ini自动创建会话:设置php.ini中的session.auto_start选项,激活该选项即可自动创建会话(配置值改为1),但是使用该方法启动auto_start会导致无法使用对象作为会话变量。
(2)注册会话变量:会话变量被启动后,全部保存在数组$_session中。通过数组$_session,直接给该数组提添加一个元素即可创建一个会话变量: $_session[session_name]=session_value;
(3)使用会话变量:
if(!empty($_session[session_name])){$myvalue=$_session[session_name]}
(4)注销会话变量:注销某个session成员:unset($_session[session_name])
注销所有会话功能:$_session=array();然后使用session_destory();函数清除会话ID。
18.字符串处理:
(1)获取字符串长度:int strlen($str);
(2)将指定字符串转换成大写:strtoupper($str);
(3)将首字母转换成大写:ucfirst($str);
(4)字符串与HTMl相互转换:htmlspecialchars($str);----将字符串中某些特殊字符转化成html格式
(5)去除字符串的空格:trim()---去两遍空格,ltrim()----去左边空格,rtrim()----去右边空格
(6)substr_count($str,"value");查询某字符在目标字符串中出现的个数
(7)strpos($str,"value");----定位字符位置,返回int
(8)防止单引号破坏sql语句:自动转义函数:addslashes();
<?php
$str = "Is your name O'reilly?";
// 输出:Is your name O'reilly?
echo addslashes($str);
?>
(9)截取字符串:substr($str,start_int,end_int);---return $newstr
(10)填充字符串:string str_pad ( string input, int pad_length [, string pad_string [, int pad_type]] )
例:<?php
$input = "Alien";
echo str_pad($input, 10); // produces "Alien " echo str_pad($input, 10, "-=", STR_PAD_LEFT); // produces "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH); // produces "__Alien___"
echo str_pad($input, 6 , "___"); // produces "Alien_"
?>
(11)字符串的比较:int strcmp ( string str1, string str2 )----按逐个字符的ascll码进行比较,如果返回等于0,则相等;大于0,则str1大于str2;小于0,则str1小于str2。
(12)数字字符串的格式化:string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )
该函数可以有1个,2个,或4个参数,但不能使三个。decimals意思是取小数点后几位,dec_point用来代替小数点,thousands_sep用来代替千位分隔符。
(13)查找和替换:
查找:string strstr ( string haystack, string needle )
例:<?php
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain; // prints @example.com
?>
替换:mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )----区分大小写
篇二:php重要知识点总结(PHP网络开发必背)
PHP网站开发必用知识点总结,函数一览,开发必背
魔术方法
__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。 __destruct() 当删除一个对象或对象操作终止的时候,调用该方法。
__get() 当试图读取一个并不存在的属性的时候被调用。
__set() 当试图向一个并不存在的属性写入值的时候被调用。
__call() 当试图调用一个对象并不存在的方法时,调用该方法。
__toString() 当打印一个对象的时候被调用
__clone() 当对象被克隆时,被调用
__isset()
__unset()
__autoload($classname)
__sleep()
__wakeup()
系统常量
__FILE__ 当前文件名
__LINE__ 当前行数
__FUNCTION__ 当前函数名
__CLASS__ 当前类名
__METHOD__ 当前对象的方法名
PHP_OS 当前系统
PHP_VERSION php版本
DIRECTORY_SEPARATOR 根据系统决定目录的分隔符 /
PATH_SEPARATOR 根据系统决定环境变量的目录列表分隔符 ; :
E_ERROR 1
E_WARNING 2
E_PARSE 4
E_NOTICE 8
M_PI 3.141592
$_SERVER
$_ENV 执行环境提交至脚本的变量
$_GET
$_POST
$_REQUEST
$_FILES
$_COOKIE
$_SESSION
$_GLOBALS
输出
echo //Output one or more strings
print //Output a string
print_r() //打印关于变量的易于理解的信息。
var_dump() //打印变量的相关信息
var_export() //输出或返回一个变量的字符串表示
printf("%.1f",$num) //Output a formatted string
sprintf() //Return a formatted string
编码转换
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] ) iconv();
时间
date_default_timezone_set("PRC");
date("Y-m-d H:i:s");
time();
date("Y-m-d H:i:s",time()+3600)
ini_set('date.timezone', 'PRC');
msec sec microtime() 以秒返回时间戳 explode(' ', microtime())
错误处理
@1/0
error_reporting(E_ALL) 显示所有错误
error_reporting(0)
trigger_error("Cannot divide by zero", E_USER_ERROR);
try
{
throw new Exception("执行失败");
}
catch (Exception $ex)
{
echo $ex;
}
字符串处理
string trim("eee ") trim ('ffffe','e') //ltrim rtrim
array explode(".", "fff.ff.f") 按指定字符切割
string implode(".", $array) 别名:join 把数组值数据按指定字符连接起来
array str_split("eeeeeeee",4) 按长度切割字符串
array split("-","fff-ff-f") 按指定字符切割
int strlen('ffffffff') 取字符长度
string substr ( string $string , int $start [, int $length ] )
substr($a,-2, 2) 截取字符
int substr_count($text, 'is') 字符串出现的次数
string strstr($text, 'h') 第一次出现h后的字符串 //别名:strchr
int strpos($text, 'h') 第一次出现h的位置
strrpos();最后一次出现h的位置
str_replace('a', 'ttt', $t) 把$t里的'a'替换为'ttt'
strtr($t,'is','ppp') 把$t中'is'替换成'ppp'
strtr("hi all, I said hello", array("hello" => "hi")) 把'hello'转换成'hi'
string md5_file('1.txt',false) 文件数据md5加密
int strcmp(string str1, string str2) 字符串比较
int strcasecmp(string str1, string str2) 忽略大小写
string str_pad($i, 10, "-=", STR_PAD_LEFT) 在原字符左边补'-=',直到新字符串长度为10
STR_PAD_RIGHT
STR_PAD_BOTH
string str_repeat('1', 5) 重复5个1
void parse_str('id=11'); echo $id; 将字串符解析为变量
array preg_grep("/^(d+)?.d+$/", array(11.2,11,11.2)) 匹配数据
array preg_split ("/[s,]+/", "hypertext language,programming"); 按指定的字符切割 array pathinfo(string path [, int options]) 返回文件路径的信息
string basename ( string path [, string suffix] ) 返回路径中的文件名部分
string dirname ( string path ) $_SERVER[PHP_SELF] 返回路径中的目录部分 string nl2br("foo isn't bar") "foo isn't
bar" 把换行转成
string chr ( int ascii ) *
mixed str_word_count ( string string [, int format [, string charlist]] )
string str_shuffle ('abc') 打乱字符串顺序
string strrev($str) * 翻转一个字符串
string strtolower($str) * 将字符串 $str 的字符全部转换为小写的
string strtoupper($str) * 将字符串 $str 的字符全部转换为大写的
string ucfirst ($str) * 将字符串 $str 的第一个单词的首字母变为大写。 string ucwords($str) * 将字符串 $str 的每个单词的首字母变为大写。
string addslashes("I'm") I'm 使用反斜线引用字符串 这些字符是单引号(')、双引号(")、反斜线()与 NUL(NULL 字符)
string stripcslashes("I'm") I'm 将用addslashes()函数处理后的字符串返回原样
strip_tags("
tt
", '
') 去除html、xml、php标记,第二个参数用来保留标记 string urlencode(string str)
string urldecode(string str)
string htmlspecialchars("Test", ENT_QUOTES) 转换特殊字符为HTML字符编码
Test
ENT_COMPAT –对双引号进行编码,不对单引号进行编码
ENT_QUOTES –对单引号和双引号进行编码
ENT_NOQUOTES –不对单引号或双引号进行编码
string htmlentities('
ff
', ENT_QUOTES) 转换特殊字符为HTML字符编码,中文会转成乱码
数组处理
int count( mixed var [, int mode] ) 别名:sizeof() 取数组长度
string implode(".", $array) 别名:join 把数组值数据按指定字符连接起来 array explode(".", "fff.ff.f") 按指定字符切割
array range(0, 6, 2) 返回数组 array(0,2,4,6) 第一个参数为起使数,第二个参数为结束数,第三个参数为数据增加步长
int array_push($a, "3", 1) 把'3'、'1'压入$a,将一个或多个单元压入数组的末尾(入栈),第二个参数开始就是压入的数据
void unset ( mixed var [, mixed var [, ...]] )
array array_pad ($a, 5, 's')用's'将数组填补到指定长度
bool shuffle ( array $array ) 将数组打乱
mixed array_rand ( array input [, int num_req] )从数组中随机取出一个或多个单元的索引或键名
array array_count_values ( array input )统计数组中所有的值出现的次数
array array_combine ( array keys, array values ) 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
bool array_key_exists ( mixed key, array search )检查给定的键名或索引是否存在于数组中
mixed array_search ( mixed needle, array haystack [, bool strict] )在数组中搜索给定的值,如果成功则返回相应的键名
bool is_array ( mixed var )
bool in_array ( mixed needle, array haystack [, bool strict] )检查数组中是否存在某个值 number array_sum ( array array )计算数组中所有值的和
array array_unique ( array array )移除数组中重复的值
mixed reset ( array &array )将数组的内部指针指向第一个单元
mixed current ( array &array )
mixed next ( array &array )
mixed prev ( array &array )
mixed end ( array &array )
mixed key ( array &array )
array array_keys ( array input [, mixed search_value [, bool strict]] ) 返回数组中所有的键名
array array_values ( array input ) 返回数组中所有的值
bool print_r ( mixed expression [, bool return] )
void var_dump ( mixed expression [, mixed expression [, ...]] )
int array_unshift ( array &array, mixed var [, mixed ...] )在数组开头插入一个或多个单元 mixed array_shift ( array &array )将数组开头的单元移出数组
mixed array_pop ( array &array )将数组最后一个单元弹出(出栈)
array array_splice ( array $input, int offset [, int length [, array replacement]] ) 把数组中的一部分去掉并用其它值取代
array array_merge ( array array1 [, array array2 [, array ...]] )合并一个或多个数组 array array_flip ( array trans )交换数组中的键和值
int extract( array var_array [, int extract_type [, string prefix]] ) 从数组中将变量导入到当
前的符号表
array compact ( mixed varname [, mixed ...] ) 建立一个数组,包括变量名和它们的值 bool sort ( array &array [, int sort_flags] )从最低到最高重新安排
bool natsort($a) 用“自然排序”算法对数组排序
bool rsort ( array &array [, int sort_flags] )对数组进行逆向排序(最高到最低) bool asort ( array &array [, int sort_flags] )对数组进行排序并保持索引关系
bool arsort ( array &array [, int sort_flags] ) 对数组进行逆向排序并保持索引关系 bool ksort ( array &array [, int sort_flags] )对数组按照键名排序
bool krsort ( array &array [, int sort_flags] )对数组按照键名逆向排序
array array_filter ( array input [, callback callback] ) 用回调函数过滤数组中的单元
bool array_walk ( array &array, callback funcname [, mixed userdata] ) 对数组中的每个成员应用用户函数
array array_map ( callback callback, array arr1 [, array ...] )将回调函数作用到给定数组的单元上
array array_fill ( int start_index, int num, mixed value ) 用给定的值填充数组
array_fill(5, 3, 'a')-->array(5=>'a',6=>'a',7=>'a')
array array_chunk ( array input, int size [, bool preserve_keys] )将一个数组分割成多个
其他
isset() 变量是否存在
boolean empty() 检查变量是否存在,并判断值是否为非空或非0
void unset() 销毁变量
header('Content-Type: text/html; charset=utf-8');
method_exists($obj, $method) 判断对象的方法是否可用
file_exists($file) 判断文件是否存在
function_exists();
class_exists($class_name);
gettype();获取数据类型
set_magic_quotes_runtime() 0 for off, 1 for on 当遇到反斜杆、单引号,将会自动加上一个反斜杆,保护系统和数据库的安全
ini_set();
安全
function strReplace($str)
{
$strResult = $str;
if(!get_magic_quotes_gpc())//判断设置是否开启
{
$strResult = addslashes($strResult);//转换sql语句特殊字符
}
return $strResult;
}
篇三:php框架分析
PHP框架
本文来自国外的一个PHP技术人员网站,总结了国外的十个目前最流行的PHP MVC框架。具体排名顺序未必准确,还有些知名框架,如Kohana等也没有提及。不过仍可以做为一篇不错的参考。
以下为十个目前最流行的基于MVC设计模式的PHP框架。
1. Yii
Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了 今日Web 2.0应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。
2. CodeIgniter
CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常 见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。
3. CakePHP
CakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目 的弹性。
4. PHPDevShell
PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管 理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP 开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。
5. Akelos
Akelos PHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:
方便的使用Ajax编写views
通过控制器管理请求(request)及响应(response)
管理国际化的应用
使用简单的协议与模型及数据库通信
你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。
6. Symfony
Symfony是一个用于开发PHP5项目的web应用框架。其目的在于加速web应用的开发以及维护,减少重复的编码工作。
Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。
对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷 开发的原理(如DRY,KISS
或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。
Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。
7. Prado
PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。 PRADO的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。
8. Zend
作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架 旨在建造更安全,更可靠的Web 2.0应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和 ProgrammableWeb等)的API那里吸收精华。
9. ZooP
Zoop PHP框架,意为Zoop面向对象的PHP框架。
这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。Zoop建议将display,logic以及数据层(MVC)分开使用。
Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志 生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。
10. QPHP
QPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架。基本上它是这样一个情况: 整合了Java和C#的美感
除去了在其他PHP框架中使用的Perl形式的意义含糊的语言
大量基于OOP的概念
PHP服务器
一、phpStudy简体中文版
该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.总之学习PHP只需一个包.对学习PHP的新手来说, WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事.因此无论你是新手还是老手,该程序包都是一个不错的选择。
二、PHPnow
PHPnow是 Win32 下绿色免费的 Apache + PHP + MySQL 环境套件包。简易安装、快速搭建支持虚拟主机的 PHP 环境。
附带 PnCp.cmd 控制面板,帮助你快速配置你的套件,使用非常方便。安装 PHPnow 只需解压、初始化,就可得到一个标准的 PHP + MySQL 的服务器环境。然后就可以直接安装 Discuz!
等程序,或者进行 PHP 开发调试。支持虚拟主机:便捷的虚拟主机管理。虚拟主机代理:可与 IIS 共存 80 端口(代理方式)
三、NPMserv(win下nginx+php+mysql)
NPMserv 是一款图形界面的快速搭建nginx 0.7.61、PHP 5.3.0、MySQL 5.1.35、phpMyAdmin 3.2.1,网站服务器平台的绿色软件。无需安装,具有灵活的移动性,盘下根目录(如D:/NPMserv)、打开NPMserv.exe启动服务即可。
www.yes919.com www.packyw.cn http://soft.yes919.com
四、EasyPHP(Apache+PHP+MySQL套件)
相信很多朋友对 Win+Apche+PHP+MySQL这样的组合感兴趣,但是不懂得编辑配置文件,导致在配置上面花了很大的时间。本套件采用傻瓜式安装,一次搞定,方便调试和运行PHP+MySQL程序。如果作为服务器对外开放请调整相关配置文件,本系统配置的安全系数不是非常高。请在 相关配置文件中修改Apache及PHP中网站管理员信箱及网站名称。
建议:由于出于程序测试目的配置,安全系数并不是太高,请自行调整相关配置文件,MySQL数据库用户名:root,密码为空,安装后请设置密码。
篇四:最佳PHP,HTML5和CSS框架大荟萃之一 PHP框架
最佳PHP,HTML5和CSS框架大荟萃之一 PHP框架
开发框架是用来帮助开发人员快速设计和开发动态网站的基础,几乎每个月都会有大量的框架被开发人员发布,用来帮助web开发者更简单和高效的开发web应用。
在这篇文章中,我将总结荟萃出最佳的PHP,HTML5和CSS框架,希望能够在大家选择框架的时候能够供大家参考借鉴。如果你有任何建议和补充,谢谢阅读!
PHP框架
1. Cake PHP
CakePHP是一个拥有极大灵活性的开发,维护和部署的快速开发框架。使用非常常见的MVC和ORM设计模式,及其配置规则帮助大家简化开发过程而无须开发过多的代码
和ZF类似,CakePHP不要求配置。使用简单。在IRC上拥有非常友好的社区#cakePHP,用来帮助新的用户快速开始学习。基于MIT License,拥有最佳实践,例如,安全,认证和session处理。拥有面对对象的方式帮助你更简单的使用。
2. Yii Framework
Yii是一个免费,开源的web应用开发框架,使用PHP5开发,帮助开发干净,简洁的设计并且鼓励开发开发。它帮助流水化的开发应用,并且保证高效,可扩展和易维护。性能极大的优化,非常适合开发任何类型的产品和项目。然而,它内建复杂,企业级别的应用。你拥有完整的控制,包括表现层和持久层,符合了企业级别开发的指导方针
3. Zend
Zend Framework 2 是一个使用PHP5.3+来开发web应用和服务的开源框架。使用100%的面对对象的代码并且使用PHP5.3种的新特性,例如名字空间,late static binding,lamda function和closure。Zend framewok 2 由成功的PHP框架Zend Framework 1演变而来,而Zend framework 1拥有1500万的下载量。Zend framework2拥有独特的组件结构,每一个组件都设计的尽量少和其它组件产生依赖关系。 ZF2遵循了严格的面对对象的设计原理。这种非严格的组件关系结构允许开发人员使用任何他想使用的组件。
4. Symfony
Smyfony是一个web应用框架,遵循了典型的MVC(model view controller)的设计结构,现在越来越受欢迎,Symfony基于MIT license,它使用一些PHP代码类的辅助类库得开发的过程简单
5. Webasyst
webasyst是一个开源的框架用来开发平滑的多用户web应用或者复杂的网站。和其它的框架,例如,zend和symfony,比较起来,Webasyst框架更专注,并且允许更快和更高效的创建基于商业和团队使用的应用。这个框架提供了大量的现成的工具用来管理用户和授权,UI创建,移动端的访问等等
6. Laravel
Laravle是一个定位于优雅简单的PHP框架。变成不会变的苦闷。事实上,使用正确的工具绝对是让它成为一个让人愉悦的事情。Laravel适合所有的PHP开发人员,特别是初学者。
除了完善的文章,Laravel的友好的社区一直帮助回答文档上没有涉及到的相关问题。使用Bundle来打包和分享代码绝对是一个非常棒的方式
7. Guzzle
Guzzle是一个帮助大家解决发送HTTP请求和创建web service 客户端中多余的步骤的框架。包含了用来创建强壮的web service客户端的工具,其中: 定义输入和输出的服务描述API,用来遍历分页资源的资源迭代,高效发送大量请求等等。
8. Phalcon PHP
Phalcon PHP是一个被发布成为C扩展并且提供高性能和低资源消耗的web框架。使用C书写,平台无关。作为这样的框架,PHP支持微软的windows系统, GNU/linux,Max OSX,你可以下载一个适合你的系统的二进制包或者自己编译
9. CodeIgniter
Codelgiter是一个强大的PHP框架,拥有非常小的体积,针对需要使用简单优雅的工具套件开发完整特性的web应用而开发。如果你需要处理共享主机账号或者客户时间有限制,并且厌倦了没有文档的大型框架的话,Codeignier可能非常适合你
10. Fuel PHP
Fuel是一个简单,灵活,社区驱动的5.3 web框架,基于其它框架中的好的想法而开发一个框架。在Apache,,IIS和Nginx上测试过。Fuel使用另外一种方式实现,和其它框架不同,它努力成为社区驱动的框架。刚成立不到6个月,已经有30多个开发人员贡献了代码和文档。
当然了国产框架也有一些, 例如,thinkPHP也还可以,具体项目还是得具体分析!
免费领取兄弟连php原创视频教程光盘,详情咨询官网客服: http://www.lampbrother.net
篇五:主流PHP框架优缺点对比
主流PHP框架优缺点对比
2012-04-14 文章互联网 浏览次数: 206
PHP是一种在国内外都比较流行的开源服务器端脚本开发语言。能够适应大中小型项目的开发需求。我们将在这篇文章中向大家介绍几款主流PHP框架及其相关优缺点评比,作为一个参考分享给朋友们。
主要参考的PHP框架包括:CodeIgniter、CakePHP、ZendFramework、Symfony。我对很多框架也没有认真使用,只是简单试用了一下,可能很多看法不成熟或者是错误的,请大家指正,一起成长。
优点:
1. 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能
2. 快速简洁,代码不多,执行性能高,PHP框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用
缺点:
1. 把Model层简单的理解为数据库操作
2. PHP框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要 评价:
总体来说,拿CodeIgniter来完成简单快速的应用还是值得,同时能够构造一定程度的layout,便于模板的复用,数据操作层来说封装的不错,并且CodeIgniter没有使用很
多太复杂的设计模式,执行性能和代码可读性上都不错。至于附加的 library 也还不错,简洁高效。
优点:
1. CakePHP是最类似于RoR的PHP框架,包括设计方式,数据库操作的Active Record方式;设计层面很优雅,没有自带多余的 library,所有的功能都是纯粹的框架,执行效率还不错;数据库层的 hasOne, hasMany 功能很强大,对于复杂业务处理比较合适;路由功能,配置功能还不错;自动构建脚手架(scaffold)很强大;适合中型应用;基本实现过了MVC每一层;具有自动操作命令行脚本功能;
2. 文档比较全,在国内推广的比较成功,大部分都知道CakePHP,学习成本中等 缺点:
1. CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力
2. CakePHP的cache功能略显薄弱,配置功能稍嫌弱;CakePHP不适合大型应用,只适合中型应用,小型应用来说略微的学习成本高了点
评价:
总体来说CakePHP框架代表了PHP框架很重要的一个时代和代表,并且目前发挥着很重要的作用,不少自己写的框架都模仿了CakePHP的方式,是个里程碑式的产品;CakePHP透露着RoR的敏捷开发方式和把数据库操作认为是唯一Model的设计思想,作为开发快速应用和原型是绝好的工具;同样,用来做Web2.0网站的开发框架,也是值得选择的。
优点:
1. 官方出品,自带了非常多的 library,框架本身使用了很多设计模式来编写,架构上很优雅,执行效率中等;MVC设计中,比较简洁,具有路由功能,配置文件比较强大(能够处理XML和php INI),各种 library 很强大,是所有PHP框架中各种功能最全面的,包括它不仅是一个PHP框架,更是一个大类库(取代PEAR),这是它的主要特色;能够直观的支持除数据库操作之外的Model层(比 CodeIgniter 和 CakePHP 强),并且能够很轻易的使用Loader功能加载其他新增加的Class;Cache功能很强大,从前端Cache到后端Cache都支持,后端Cache支持Memcache、APC、SQLite、文件等等方式;数据库操作功能很强大,支持各种驱动(适配器)
2. 文档很全,在国内社区很成熟,并且目前不少Web 2.0网站在使用,学习成本中等
缺点:
1. MVC功能完成比较弱,View层简单实现(跟没实现一样),无法很强大的控制前端页面
2. 没有自动化脚本,创建一个应用,包括入口文件,全部必须自己手工构建,入门成本高
3. Zend Framework 作为一个中型应用框架问题不大,也能够勉强作为大型应用的PHP框架,但是作为一个很成熟的大型PHP框架来说,还需要一些努力
评价:
作为官方出品的框架,Zend Framework的野心是可以预见的,想把其他框架挤走,同时封装很多强大的类库,能够提供一站式的框架服务,并且他们的开发团队很强大,完全足够有能力开发很强大的产品出来,所以基本可以确定的是Zend Framework前途无量,如果花费更多的时间去完善框架。同样的,Zend Framework架构本身也是比较优雅的,说明Zend官方是有很多高手的,设计理念上比较先进,虽然有一些功能实现的不够完善,
比如View层,自动化脚本等等,这些都有赖于未来的升级。总体来说Zend Framework是最值得期待的PHP框架,当然,你目前要投入你的项目中使用也是完全没问题的。
优点
1. Symfony 是我了解的PHP框架中功能最强大的,而且我使用时间比较长,但是很多功能还是没有挖掘出来;它完整实现了MVC三层,封装了所有东西,包括 $_POST,$_GET 数据,异常处理,调试功能,数据检测;包含强大的缓存功能,自动加载Class(这个功能很爽),强大的i18n国家化支持;具有很强大的view层操作,能够零碎的包含单个多个文件;非常强大的配置功能,使用yml配置能够控制所有框架和程序运行行为,强大到让人无语;能够很随意的定义各种自己的class,并且symfony能够自动加载(auto load)这些class,能够在程序中随意调用;包含强大的多层级项目和应用管理:Project --> Application --> Module --> Action,能够满足一个项目下多个应用的需要,并且每层可以定义自己的类库,配置文件,layout;非常强大的命令行操作功能,包括建立项目、建立应用、建立模块、刷新缓存等等;
2. Symfony绝对是开发大型复杂项目的首选,因为使用了Symfony,将大大节约开发成本,并且多人协作的时候,不会出现问题,在Project级别定义好基础Class以后,任何模块都能够重用,大大复用代码
缺点:
1. 数据库操作model采用了重量级的propel和creole,不过在我测试的版本中已经把他们移到了addon里,可用可不用
2. 缓存功能无法控制,每次开发调试总是缓存,需要执行 symfony cc, symfony rc 来清除和重建缓存;
3. 效率不是很高,特别是解析模板和读取配置文件的过程,花费时间不少;
4. 学习成本很高,并且国内没有成熟的社区和文档,连中文手册都没有,相应的要掌握所有功能,需要花费比较多的时间
评价:
Symfony绝对是企业级的PHP框架,唯一能够貌似能够跟Java领域哪些强悍框架抗衡的东西;强悍的东西,自然学习复杂,但是相应的对项目开发也比较有帮助,自然是推荐复杂的项目使用Symfony来处理,觉得是值得,后期的维护成本比较低,复用性很强。相应的如果使用Symfony的应该都是比较复杂的互联网项目,那么相应的就要考虑关于数据库分布的问题,那么就需要抛弃Symfony自带的数据库操作层,需要自己定义,当然了,Symfony支持随意的构造model层。
总结
以上数款PHP框架,各有特色,而且都是开源项目,不过框架针对的项目不一样,一般来说 CodeIngiter 比较适合小型项目,CakePHP 和 Zend Framework 比较适合中型项目,Symfony 比较适合大型重量级项目,在项目选型的时候,要充分考虑框架的可以定制性、扩展性,因为每个项目都无法确定你是否会随着需求的变化进行改变。
相对来说,Zend Framework 和 Symfony 应对变化的能力比较强,特别是能够随意定制 model 层的Class,能够非常方便增加自己业务或者数据处理类,我是个人比较推荐在中大型项目中使用的PHP框架。
CodeIngiter 和 CakePHP 在中小型项目中同样能够发挥重大作用,快速开发和原型构建,非常适合目标不清晰的原型项目的开发。
【php知识框架总结】相关文章:
php工作总结11-11
php实习心得12-01
php实习报告11-07
php是什么格式?01-14
PHP Socket编程过程02-09
php开发主管的职责05-15
php开发主管的工作职责09-29
php实习报告(5篇)11-08
php实习心得7篇12-02
php实习心得(精选13篇)12-23