当前位置:  编程技术>php
本页文章导读:
    ▪PHP 开源框架22个简单简介       那么,是什么让PHP如此流行?PHP 如此之流行是因为比起别的语言来,它更容易学习,网上有一大堆相当相当不错的PHP教程可以让你快速地马上就可以进行Web程序的开发。虽然PHP是是简单的,.........
    ▪php xml留言板 xml存储数据的简单例子       类文件 : _class.xmldb.inc.php 代码如下: <?php class xmldb extends DOMDocument{     var $xmldb;     public function __construct($xmldbname){         $this->xmldb=$xmldbname;         if(!file_exists($this->xmld.........
    ▪建站常用13种PHP开源CMS比较       1.曼波-MAMBO,一个国外的CMS系统 ,功能 很强大,支持添加很多组件,模块;拥有丰富的模板 官方:http://www.mamboserver.com 2.凌波-Limbo(Lite Mambo),顾名思义,是从Mambo演化而来。其目的是在.........

[1]PHP 开源框架22个简单简介
    来源: 互联网  发布时间: 2013-11-30

那么,是什么让PHP如此流行?PHP 如此之流行是因为比起别的语言来,它更容易学习,网上有一大堆相当相当不错的PHP教程可以让你快速地马上就可以进行Web程序的开发。虽然PHP是是简单的,而且是容易上手的,但用它编程还是有点麻烦,尤其是一些反复在用的功能。不过,幸运的是,很多开发团队早就注意到了这点,现在在网上,PHP有许多的可以信任的PHP Framework 可以缩短我们的开发时间。这些框架被一个巨大的社区所支持,因些,如果你有什么问题的话,一定会有人乐意帮你去解决。

废话少说,让我们来看看这22个PHP的框架。

迄今最有前途的框架 1. Zend Framework


Zend Framework 是一个面向对象的,由PHP5写成的框架。其基于一个简洁和友好的许可证协议,并基于了一个经过了相当严酷测试的代码库开发而来。这是一个松散的几乎没有耦合架构设计,你可以方便地把其和其它框架混合使用。

2. Symfony


Symfony 是一个基于PHP 5 的框架,其提供了一个架构,组件和工具集,可以让你更快地创造你的应用。在其官网上提供了一些入门教程。

3. CodeIgniter


CodeIgniter 这个框架有一个wiki可以让你容易的查找相关的文档。其支持的是PHP4。

4. CakePHP


这个框架使用了一些流行的设计模式比如: MVC 和ORM   , CakePHP 可以有效地减少开发成本和帮助开发人员少写代码。

5. Prado

Prado 需要PHP5 及以上版本才能运行,这是基于组件和事件驱动编程的一个程序框架。

6. Kohana


Kohana 是一个基于 PHP 5 的框架,其也是使用MVC—— Model View Controller 架构模式。其面对的是安全,轻量级,和易用性。由于Kohana 原来基于 CodeIgniter开发,因为其限制了PHP5 的OOP能力,所以这个框架更合适用在一些中小型的应用。

7. Solar Framework


Solar 是一个 PHP 5 的框架,其可以用做企业级的应用,而且有内建的语言集和配置。

8. Fuse


FUSE 也是一个MVC的PHP框架。其注是要受到了Ruby on Rails 和CakePHP的影响,其有定制和直接的设计。FUSE 是一个功能完整,相当稳定的使用面向对像开发的MVC框架。

9. Yii PHP Framework


Yii 是一个高性能的组件式的PHP框架,对于那些大型的Web应用来说,这是最好的框架,全面的功能。但需要PHP5及以上版的支持。

10. Akelos PHP Framework


Akelos PHP 框架也是基于 MVC (Model View Controller) 设计模式的框架。

其它可选的 PHP 框架

11. Recess
12. Agavi
13. Qcodo
14. Zoop
15. QPHP
16. Seagull PHP
17. PHPDevShell
18. PHPOpenBiz
19. WASP
20. evoCore
21. Lion
22. Flow3


    
[2]php xml留言板 xml存储数据的简单例子
    来源: 互联网  发布时间: 2013-11-30
类文件 : _class.xmldb.inc.php
代码如下:

<?php
class xmldb extends DOMDocument{
    var $xmldb;
    public function __construct($xmldbname){
        $this->xmldb=$xmldbname;
        if(!file_exists($this->xmldb)){
            $initxmldb = "<?xml version=\"1.0\" encoding=\"utf-8\"?><Message></Message>";
            $this->loadXML($initxmldb);
            $this->save($this->xmldb);
        }else{
            $this->load($this->xmldb);
        }

    }
    public function insert_message($nickname,$message){

        $messagedom = $this->getElementsByTagName("Message");
        $subnode = $this->createElement("Rows");
        $nicknamenode = $this->createElement("Nickname");
        $nicknamenode -> appendChild($this->createTextNode($nickname));
        $subnode -> appendChild($nicknamenode);
        $contentnode = $this->createElement("Content");
        $contentnode -> appendChild($this->createTextNode($message));
        $subnode -> appendChild($contentnode);
        $timernode = $this->createElement("Timer");
        $timernode -> appendChild($this->createTextNode(time()));
        $subnode -> appendChild($timernode);
        $messagedom->item(0)->appendChild($subnode);
        $this->saveXML();
        $this->save($this->xmldb);
    }
    function get_node_length($nodename){

        $odom = $this->getElementsByTagName($nodename);
        return $odom->length;
    }
    public function get_message_list($start,$rowscount,$pagesize){
        $end = $rowscount > $pagesize ? $start+$pagesize : $rowscount;

        $k = 0;
        for($i = $start; $i < $end; $i++){
            $rowslist[$k]["Nickname"] = $this->getElementsByTagName("Nickname")->item($i)->nodeValue;
            $rowslist[$k]["Content"] = $this->getElementsByTagName("Content")->item($i)->nodeValue;
            $rowslist[$k]["Timer"] = $this->getElementsByTagName("Timer")->item($i)->nodeValue;
            $k++;
        }
        return $rowslist;
    }
    public static function splitpage($pageall,$page=1,$urled=null,$strpage = "page",$pageaverage = 10){
            $pageaverage -= 1;
            $page = intval($page >=1 ? $page : 1 );
            $page = $page > $pageall ? $pageall : $page;
            $startpage = $page - $pageaverage > 0 ? $page - ceil(($pageaverage / 2)):1;
            $startpage = ($page + ceil($pageaverage/2) > $pageall)?$pageall-$pageaverage:$startpage;

            $startpage = $startpage > 0 ? $startpage : 1;
            $stoppage = $startpage+$pageaverage >$pageall?$pageall:$startpage+$pageaverage;
            if(empty($urlfile)){ $urlfile=$_SERVER["PHP_SELF"]; }
            if(!strrpos($urlfile,'?')) $urled .= '?';
            foreach($_GET as $k => $v)
            {
                $urled = ($k<>$strpage) ? $urled.$k.'='.urlencode($v).'&' : $urled;
            }
            if ($page>1){
                $mess ="<a href="".$urled.$strpage."=1" href="".$urled.$strpage."=1">首页</a> ";
                $mess .="<a href="".$urled.$strpage."=".($page-1)."" href="".$urled.$strpage."=".($page-1)."">上一页 </a>";
            }else{
                $mess ="首页 ";
                $mess .="上一页 ";
            }
            if($page > 9){
                $startpage = $page - 9;
            }
            $stoppage = $startpage + 9 >= $pageall ? $pageall : $startpage + 9;
            for($i= $startpage; $i<= $stoppage ;$i++)
            {
                if($i<= $pageall && !($page==$i))
                    $mess .= "<a href="".$urled.$strpage."=".$i."" href="".$urled.$strpage."=".$i."">".$i."</a> ";
                else
                    $mess .= "".$i." ";
            }
            if ($page < $pageall){
                $mess .=" <a href="".$urled.$strpage."=".($page+1)."" href="".$urled.$strpage."=".($page+1)."">下一页</a>";
                $mess .=" <a href="".$urled.$strpage."=".$pageall."" href="".$urled.$strpage."=".$pageall."">尾页</a>";
            }else{
                $mess .=" 下一页";
                $mess .=" 尾页";
            }
        return $mess;
    }
}
?>

调用文件 : index.php
代码如下:

<?php
require("_class.xmldb.inc.php");
$xmldb = new xmldb("./my_xmldb.xml");
if(isset($_POST["btnform1"])){
    $xmldb -> insert_message($_POST["nickname"],$_POST["content"]);
}
$pagesize        = 3;
$page            = !empty($_GET['page']) ? intval($_GET['page']) : 1;
$rowscount        = $xmldb -> get_node_length("Rows");
$pagecount        = ceil($rowscount/$pagesize);
$start            = ($page-1)*$pagesize > $rowscount ? $rowscount : ($page-1)*$pagesize;
$rowslist = $xmldb -> get_message_list($start,$rowscount,$pagesize);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE> New Document </TITLE>
    <style type='text/css'><!--
        #messagelist ul li{ float:left;list-style-type:none; }

--></style><style type='text/css' bogus="1">        #messagelist ul li{ float:left;list-style-type:none; }
    </style>
</HEAD>
<BODY>
    <div id="messagelist">
    <?php
        if(!empty($rowslist))
        {
            foreach($rowslist as $key => $value)
            {
                echo "<ul><li>".$value["Nickname"]." <span>(".date("Y-m-d H:i",$value["Timer"]).")</span></li>";
                echo "<li>".$value["Content"]."</li></ul><br>";
            }
        }
    ?>
        <div><?=$xmldb -> splitpage($pagecount,$page,'','page',$pagesize)?></div>
    </div>
    <div>
        <form action="" method="post" name="form1">
            昵称:<input type="text" name="nickname"><br>
            内容:<textarea name="content">

php操作xml的简单留言板,带分页,仅供参考

    
[3]建站常用13种PHP开源CMS比较
    来源: 互联网  发布时间: 2013-11-30
1.曼波-MAMBO,一个国外的CMS系统 ,功能 很强大,支持添加很多组件,模块;拥有丰富的模板 官方:http://www.mamboserver.com

2.凌波-Limbo(Lite Mambo),顾名思义,是从Mambo演化而来。其目的是在继承Mambo一些强大的功能和特性的同时,对原Mambo系统进行简化,使之变得更加轻便小巧。同时,Limbo支持三种安装方式:TXT、Mysql、SQLite。 官方:http://www.limbo-cms.com

3.HBcms :一个以PHP官方推荐 的PEAR+SMARTY技术架构的cms,2006年才推出,完全符合cms的发展趋势,简单,易用,美观。我本地测试了一下,很容易上手,特别适合没经验的新人 做网站。起码不会被复杂的功能吓倒。当然,它同样有各种复杂的功能,只是看你是否需要用到了。使用PHP官方推荐的PEAR+SMARTY技术,是这个 cms能持续发展的一个重要的特点,很多功能都直接使用PEAR的类库完成。安装一步到位,默认附带了一些模板,值得推荐。值得注意的是,官方网站宣称以后要开源,如果真这样,熟悉pear的PHP程序员就容易上手了。 中文版官方:http://www.hbcms.com/

4.SupSite-一款将论坛 资源自动转换成门户网站的php程序系统,使用SupeSite,并利用你现有的论坛,你将自动拥有一个功能完备的,资源丰富的站点系统;由论坛变成网站,一切都是自动完成,你不需要任何干涉。让你轻轻松松实现建立网站的目的。 官方:http://www.supsite.net

5.phpcms-一个综合的网站管理系统,由PHP+MYSQL构架全站生成html,能够快速高效地应用于LINUX和WINDOWS服务器平台,是目前中国 LINUX环境下最佳的网站管理应用解决 方案之一 官方:http://www.phpcms.cn

6.风讯网站内容管理系统(FoosunCMS)-是风讯公司积多年经验、通过设计师们精心设计的符合国际要求的网站信息管理系统。 官方:http://www.foosun.cn

7.DEDE -这是一款开源的cms。功能也比较完善,但数据量一大就很慢了。因为开源,有较多的玩家和拥护者。 官方:http://www.dedecms.com

8.php168 -PHP168整站系统,代码全部开源,可方便的进行二次开发,功能模块可以自由安装与删除,个人用户免费使用。 官方:http://www.php168.com

9.帝国网站管理系统-Ecms全称为”帝国网站管理系统”,英文译为”Empire CMS”,简称”Ecms”.Ecms是基于B/S结构,且功能强大而易用的网站管理系统. 官方:http://www.phome.net

10. 随易全站系统(Cmsez)-Cmsez集成了丰富的功能模块,包括用户管理、新闻发布、信息发布、产品展示、图片管理、附件管理、在线商店、资料下载 、多媒体浏览/播放等。 官方:http://www.cmsez.com

11.toenda,有德式的严谨,支持PostgreSQL和SQLite,小型应用够了。官方: http://www.toenda.com/

12.Joomla,最火爆的CMS,模板众多,人气很旺,发展空间大。预计1.1版开始提供数据库抽象层,支持PostgreSQL。 官方:http://www.joomla.org/

13.Typo3,典型的德式产品,真正以内容为中心的管理系统,精细的控制,扩展库规模巨大,很难相信会有这样大型的Open Source软件 。有数据抽象层扩展,间接支持PostgreSQL。官方:www.typo3.org

dedecms很好用,建立模板也很方便,代码也合理,相对其它CMS要好得多,最为关键的是开源。,现在网上最热门,已经有不少大站在使用这个CMS了,中国站长站就是使用的这个CMS。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3