最近,自己利用放假时间学PHP,可能大家都不知道PHP是什么呢?PHP是一种网页嵌入式语言,就同ASP,JSP一样,这应该是编程中最容易学习的语言。前几年自己在华师上夜大的时候,唯一学习的编程语言是C++。现在这个PHP编程很多地方与C++类似,所以被称为C++ --(即C加加减减)很有趣的称呼,哈哈!why?因为它没C++一样要使用指针比较复杂的结构类型罗!
还有更有趣的称呼,在电脑界把php称为明灯(LAMP)WHY?原因在于php只是一种编程语言,它需要特定的环境才能运行,所以这个环境就叫做LAMP了,其实是包括四样东西(Liunx,Apache,Mysql,Php),liunx,就是同微软、window一样的操作系统,Apache就是服务器如同windows中的IIS(internet information server),Mysql就是数据库,同Access,Sqlserver,Oracle一样,因为现在的网页很多都是动态网页(这个动态不是单指画面的动态,更是强调动态地管理),PHP当然已经介绍过了是scrīpt language. [2008-2-9]
我现在学习的是PHP当然要介绍它多一点啦!php其实就同普通我们上网看到的网页语言没什么区别,普通的网页是HTML语言,十分简单的语言,我在读大学的时候已经掌握了,但是要经常记住一些tags是很不容易,但是你学习网页必须要懂得这样,而PHP就是把语句嵌入在其中间,通过PHP解释器对其进行编译,这样就可以得出网页效果的,虽然学习这个容易要花一定的时间,但这种语言是方便我们平时的网页编辑,通过语句的编写这样可以减免对网页的重复制作,说真的是提高工作效率,很棒的!
当然学习语言就像我们平时学习的english一样,要学习语法,句型等,当然没有英语语句这么多句型了,在编程语言中主要有三种结构(顺序、选择、循环结构),通过三种的结构的组合就可以编写网页和程序了。但编程语言更像的数学这科,因为有很多函数,但往往很多函数就是自己最容易不记得的。但没办法了,只有自己多点用吧!我最近在最具权威的www.php.net网站上下载了有关PHP的语法手册,这本手册不错,很通俗易懂是学习php语言的首选材料。另一个最具权威的网站是www.zend.net 这个网站,从资料中得知zend其实是两个人的名字合写在一起,这两个人就是当初php的发明者,现在成立了zend公司,听说这个公司也准备上市了,市场潜力也是很巨大的,最近IBM也就PHP的应用在其网站提供了相关的资料介绍。
目前的网页变成语言都离不开与数据库的支持,这是一种很有用的技术支持,以前的网页都处于静态,很多资料都不能保存,现在数据库可以通过其严密的关系结构,使网页更具信息的系统性和安全性。目前流行的数据库很多,我自己也不清楚那些数据库软件好用,自己用过的有SQLSERVER,MYSQL,至于IBM强烈推荐的DB2 V9则没用过。[2008-2-10]
php防刷计数器
PHP技巧:php过滤危险html代码
用PHP过滤html里可能被利用来引入外部危险内容的代码。有些时候,需要让用户提交html内容,以便丰富用户发布的信息,当然,有些可能造成显示页面布局混乱的代码也在过滤范围内。
PHP开发一个完整、安全的用户登录系统
在使用PHP 编程的时候,我有一个习惯,不太喜欢使用现成的库文件,例如PHPLib或者其它类似的库,在这个系统中,我也打算自己写一个库文件,它需要处理认证、确认email ,更新帐号(密码,email )等事情。
PHP开发多任务应用程序
许多 PHP 开发人员认为,由于标准的 PHP 缺少线程功能,因此实际 PHP 应用程序不可能执行多任务处理。例如,如果应用程序需要其他 Web 站点的信息,那么在远程检索完成之前它都必须停止。这是错误的!通过本文了解如何使用 stream_select 和 stream_socket_client 实现进程内 PHP 多任务处理。
PHP的前景和趋势
BURLINGAME, Calif 消息: PHP脚本语言的简单性会令其在网络应用上比Java更易推广和普及,互联网溜览器的先驱Marc Andreessen在 Zend/PHP星期三的演讲中如此预言。
Andreessen (安德森)说:自从1995年,Sun Microsystems 开创并发布Java以来,Java获得了极大的成功,这主要是因为Java把它的语言优势更多的落实在程序员的应用方面,而不是放在机器上,这使得软件开发的难度明显降低。但是,Andreessen也提到,与从前相比,Java现在已经增加了很多并不令人喜欢的特性。
Java 在过去数年来一直比C和C++更易使用,直到最近变得复杂了。Andreessen提到,现在有人认为它甚至比C++还难学。(Java)简易性的年代已经过去了:“PHP现在正处在比Java更有利的环境态势中获得发展。”
这些看法或许不会被Java 的拥护者所认同 -- 他们中的大多数来自于由数百万 程序员和数百家公司组成的,掌控软件前途的Java 社团。
但即使在IBM,那些曾着力把Java 带进服务器以及以Java 为核心的WebSphere 服务器软件的高层人员,现在也看到了PHP的优势超越了Java 。
“简易性是它最大的特点。” IBM正处发展中的IT集团的副总裁Rod Smith提到,PHP在一个报告会上引起了IBM的关注。 ”他们并不着力于增加语言特征去和其它的语言竞争,“ 而代之以 ”简单的方式,而不是很不幸的,我们在Java身上曾做过的方式。“
PHP是一个开源软件,它包括一个引擎用于简化调用PHP脚本的程序,和一个大的预建脚本库。(PHP)众多的发展都由Zend公司掌控,后者还出售PHP产品包,编程工具和服务。
狂热的程序员在电脑界并不新鲜,他们坚持要建立自己的产品作为基准平台。事实上,Microsoft有很多广受欢迎的,开发者易用的编程工具,它们的成功主要归功于Windows平台。
PHP已被广泛使用,目前已有大约2千2百万网页使用PHP,数量还在稳步增长。大约450个程序员有权威去审核软件的改进。主要使用PHP的企业包括Yahoo, Lufthansa 和 Deutsche Telekom''s T-Online.
PHP比Java的应用范围窄多了,(Java)不仅可用于Web服务器,而且还可以用于PC,手机,带芯片的支付卡等很多设施。Java其中的一些技术,如JSP,倒是像PHP一样处理同样的事情。
”Java 和 PHP是在同一竞争水平,(Java)现在领先 “ Eclipse 的总经理MikeMilinkovich在一个报告会上说。Eclipse是一个开源编程工具,长期支持Java,现在同时支持PHP。” 我期盼PHP在市场上能紧追猛赶(Java)。“
Java 和PHP之间也在相互靠拢。Oracle,作为一家同时售卖Java服务器软件和其自身数据库软件可同样用于Java或PHP的公司,也是那些在服务于 Java之余还致力于协助PHP的企业中的一员。Oracle产品战略副总裁KenJacobs在一个会议上讲,Java的223特性要求 “ 将帮助在Java社区和PHP社区之间搭建桥梁。”
即便是Andreessen,他刚协助发起一个叫Ning 的应用,用于在线交换图片,信息和其他内容,也知道Java的地位。
"我的新公司正设法把Java 和PHP整合起来。这需要巨大的投入。" 他谈到他们的技术决策。“我们系统的核心是Java做的。就像一个操作系统,像一个系统编程项目。在它上面有一个应用层 -- 实际上你看到的一切都是用PHP做的。”
PHP,就像Linux和Apache的开源项目一样,现在已经受到了电脑产业巨头的亲睐。 IBM和Oracle 正致力于让PHP应用从它们的数据库提取信息,他们的背书是非常重要的,zend CEO Doron Gerstel说。
"IBM和Oracle 支持它的事实--给了IT用户一个(巨大的)信心保证。巨头都支持它,那它一定是好东西 " Gerstel在一个报告会上说。
PHP在预期11月初推出(译者注:此文写于05年)的新版5.1里,将包括一个更快的引擎来处理PHP脚本,PHP的创造者和Zend 的共同奠基人Zeev Suraski说。还将包括一个底层的“数据抽象层”以便利于PHP和不同的数据库连接,一个高水平层用于与XML数据交换,后者产生和服务于Web 服务件(Web services)。
版本6,预期在2006年推出,将支持Unicode字符解码,(Unicode)支持广泛的字母,使系统的多国应用能更简易地实现
PHP 5.3 new feature
不必等到PHP6,PHP 5.3给我们的新惊喜,简单介绍如下:
1 命名空间(Name Space);
2 use - 关键字;
3 别名(NameSpace AS Alias)
与SQL类似,可以对命名空间声明为其它别名。
4 命名空间的方法
5 全局命名空间
6 __callstatic - 关键字
以后有机会,我会详细介绍。
PHP开发框架的现状和展望
随着Ruby on Rails的火爆,PHP这个流行的Web应用脚本语言也出现了大量的新一代开发框架。与此同时,国内PHP开发者也在北京写字楼开始紧跟国外发展,推出了不同的开发框架。
Ruby on Rails催生变革
在RoR流行之前,PHP领域也有不少开发框架,例如Mojavi、WACT、PHPMvc和Seagull等。这些框架虽然也采用了MVC模式、数据库抽象层等技术。但由于当时PHP本身不像现在这样流行,所以这些框架都没有得到大量应用,最终归于沉寂。
而在感受到RoR提供的快速开发能力后,PHP社区像被注入了兴奋剂。各种应用技术和开发框架层出不穷。
新一代框架的诞生
PHP社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开始了新一代框架的设计。首先出现的第一批框架几乎都是RoR的克隆。例 如PHP on Trax(连名字都借鉴Ruby on Rails)和TaniPHP、Akelos等。这些框架最大的特点就是力求100%克隆RoR,不管是采用的架构、设计模式,还是使用方法。
这几个框架一开始确实吸引了开发者的注意,但随着开发者的深入了解,这些框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的限制,让这些框架难以在实际项目中运用。
此时,许多PHP开发者认为可以借鉴RoR的设计思想,但不应照搬RoR的结构和实现。为此,一些同样推崇快速开发的框架开始在PHP社区出现。这些框架中,CakePHP和Symfony可谓佼佼者。
CakePHP(http://www.cakephp.org/)
CakePHP充满了RoR的影子,从ActiveRecord模式到视图的布局管理都和RoR非常相似。而且CakePHP一开始也尝试实现与 RoR一样的许多东西。但CakePHP的开发团队后来发现PHP语言和Ruby语言存在巨大区别,因此RoR中的许多设计即便能够在PHP中实现,也是缺乏实用价值的。
CakePHP在发展中逐步走出了RoR的阴影,开始探索更能发挥PHP语言本身优势的架构和实现。因此有一段时间CakePHP的API发生了剧烈的变化,以致其他开发者纷纷停下脚步处于观望状态。
但由于前期一些架构的不合理和对RoR太多的模仿,导致CakePHP的核心部分越来越难以理解,运行性能也不尽人意。而且CakePHP将一个庞大的数据库操作对象作为所有业务对象的基础。这虽然利于快速开发,但却导致对业务逻辑对象的测试非常困难。
对于较小型的项目,CakePHP非常理想。北京鲜花礼品出色的快速开发能力、丰富的API和详尽的文档都可以帮助开发者很快完成工作。但随着项目规模的增加,CakePHP的局限性也变得突出。
Symfony(http://www.symfony-project.com/)
Symfony是一个非常成熟的框架,大量利用了已有的开源项目。Symfony使用Mojavi的核心代码实现了框架的MVC模式,利用 Propel作为数据库抽象层。Symfony不仅功能强大,而且对Ajax有全面的支持。加上官方网站提供的大量文档和教程,并拥有一个活跃的社区,因 此受到许多开发者的欢迎。
但是,Symfony最大的问题也在于使用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的结构非常复杂,难以理解和学习。
不过对于希望选择一个框架作为企业内部系统基础架构的企业来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟企业内部系统更为看重的是稳定性和长期的支持。
商业利益与大道至简
看到PHP开发框架的潜在商业价值后,Zend.com联合IBM宣布将要推出一个真正能够发挥PHP优势的开发框架。一时间,这个消息在整个PHP社区引起了地震。大家都开始期盼这个具有“官方”背景的开发框架能够为PHP开发者指出一条正确的道路。
不过世事难测,就在Zend Framework团队公布几个代码片断后,立即就有开发者指出这些代码片段是不可能实现的。事实证明这些代码片段不过是美好的理想。限于PHP语言本身 的能力,Zend Framework最终没有实现当初承诺提供的类似RoR中ActiveRecord模式的实现品。
Zend Framework(http://framework.zend.com/)
Zend Framework大量应用了PHP5中面向对象的新特征:接口、异常、抽象类、SPL等等。这些东西的应用让Zend Framework具有高度的模块化和灵活性。同时,因为严格遵循“针对接口编程”和“单一对象职责”等原则,让Zend Framework很有希望成为一个出色的企业应用开发框架HKRFP。
但不幸的是Zend Framework直到今天,也没有做出更多的突破。在使用Zend Framework开发时,框架对应用程序自身最重要的领域逻辑分离没有提供任何帮助
PHP与Python的比较 (PHP vs Python)
在这里,我节录了一些关于PHP和Python比较的文章和讨论,让我们能从另外一个 角度来看待PHP的优点和缺点。
同样作为一种脚本语言,底层同样是由C语言来开发的,Python是OO的,现在PHP也OO了。Python是多用途的(可用于桌面应用和web应用),PHP是专长于web应用的。当PHP还在苦恼如何整合进去大程序时,Python早就可与Java,。NET相连了。。。。
* Python的可读性,可维护性比PHP好;
* PHP的发展存在一个向后兼容性的问题,Python不存在;
* PHP的入门门槛底,Python比较高(其实Python语言是挺简单的,难在要有OO的思想,PHP在OO化后,面临同样的问题);
* 到目前为止,支持PHP的服务器多,支持Python的少 (随着硬件成本的降低,估计状况很快会改变)。
曾经有人说过,PHP的底层架构不适合用OO,那Python为什么OO用的那么好?
曾经有人说过,PHP用OO速度慢,那用Python的人,为什么并不觉得慢?
PHP用OO个人觉得是件好事,但看过Python以后,感觉PHP现在实现OO的功能与方法比Python还多,是好还是坏?作为一种脚本语言是否能很好的承载得起呢?
感觉PHP有点像当年的C++,既要面向OO,又要兼容C,搞得倍复杂。而Python有点像当年的Java,从开始就是面向OO的,并立足于脚本语言,对OO的功能与方法作了相当的简化,做自己力所能做的事情。
PHP以简单易学而名,现在为了企业化应用,如果搞得像C++一样既要顾及兼容性,又几乎全盘copy Java的OO功能,难免会变得复杂,之后会不会被其他语言所代替呢?
他山之石,可以攻玉。我们是否应该学习一下Python,从中得到一些启发呢?
现在当大家都一致看好PHP时,结合种种迹绍,我似乎感到了背后的一丝寒风,。。。希望只是己人忧天。
从PHP发展的角度,为今之计,我想最好的办法,就是大力普及推广PHP在中国的应用,先占领市场再说,因此写了个建议 (连接),可惜看来也是胎死腹中了。。。
==========================================================================
第一部分:介绍Python
What is Python?
(PYTHON的中文解释 :http://www.okpython.com/bbs/thread-73-1-1.html)
Python is a programming language that is freely available and that makes solving a computer problem almost as easy as writing out one''s thoughts about the solution. It can be written once and run on almost any computer without needing to change the program. In this section, you can learn more about what Python is, how it is used, and how it compares to other programming languages. Use the menu below to browse the various sections of this article.
Python was first created by Guido von Rossum in 1990 and was named after the Brit-com Monty Python''s Flying Circus. It has since been developed by a large team of volunteers and is freely available from the Python Software Foundation. The most recent version of Python, 2.5, was released in September, 2006.
Python is now found in many incarnations. At the website of the Python Software Foundation, Python is written in C. Other incarnations exist. A Java-based version of Python exists in Jython and may be used to work with Java c
ZF开发的PHP应用与传统PHP应用集成的方法
ZF开发的PHP应用与传统PHP应用集成的方法
大家知道,ZF需要将所有HTTP请求全部交由index.php(bootstrap)来处理,所以我们需要配置服务器的URL重写规则,例如Apache的httpd.conf:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*(.css|.js|.html|.zf|.gif|.pdf|.rar|.ppt|.chm|.png|.jpg|.jpeg)$
RewriteRule ^(/.*)$ /index.php
我们把对除了特定扩展名外的所有文件的请求都转向到index.php。
但是这样就出现了一个问题:如果我想将一个已有的PHP程序放到网站中,怎么办? 对程序的请求也都转向到index.php,显然程序无法正常工作了。
通过修改URL重写规则,我们可以解决这个问题。
例如安装discuz!论坛,我们把它装在/bbs目录下,那么我们可以这样改写rewrite规则:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^.*(.css|.js|.html|.zf|.gif|.pdf|.rar|.ppt|.chm|.png|.jpg|.jpeg)$|.*(bbs).*
RewriteRule ^(/.*)$ /index.php
注意,我们在最后加上了一个|.*(bbs).*,也就是说如果请求中有出现bbs字样就不转向到index.php,这样我们就可以访问
bbs目录下的所有文件而不会转向到/index.php了。
使用这个办法,可以方便地将ZF开发的程序和传统的PHP程序集成起来。
Apache/PHP/MYSQL服务器安装套件总结
Apache/PHP/MYSQL服务器安装套件总结
2005年1月30日23:58星期日
对于已经熟悉Apache+PHP+MYSQL的安装配置的开发人员,或者是不想涉及开发而只是想建立PHP应用程序的人来说,使用Apache/PHP/MYSQL安装套件来配置PHP的WEB环境会方便不少,但是选择合适的套件还是需要的。个人把曾经使用过的,以及比较知名的安装套件总结如下:
WAMP
一直在用的,带有phpMyAdmin和SQLiteManager ,提供了很多Add-on插件,如PHP版本切换、ZEND OPTIMIZER 、WEBALIZER等,站长推荐!
http://www.wampserver.com/
TSW
比较完整,支持PERL,FTPServer,还提供有Tomcat和wordpress插件
http://sourceforge.net/projects/yawamp/
GREENAMP
国产的套件,无删除功能
http://chin.blogchina.com/
VertrigoServ
内置了ZendOptimizer
http://vertrigo.sourceforge.net/
XAMP
很不错,提供了丰富的插件,如perl、python、tomcat和cocoon
http://www.apachefriends.org/de/xampp-windows.html
WAPM
国产的,支持Tomcat和Turck MMCahe、ZendOptimizer
http://w.yi.org/
Appserv
也整合了Zend Optimizer
http://www.appservnetwork.com/
Apache2Triad
包含了Perl , Python
http://apache2triad.sourceforge.net/
EasyPHP
安装比较简单
http://www.easyphp.org/
LiteWeb 支持Perl和虚拟域名
http://www.cmfperception.com/liteweb.html
phpHome
http://phphome.sourceforge.net/
PHP XML-RPC 的使用
XML-RPC仅支持有限的几种数据类型。下面是和PHP数据类型的的对应关系:
我们使用的XML-RPC工具包是Useful, Inc.的Edd Dumbill制作的,下载网址 http://phpxmlrpc.sourceforge.net ,其中完整包括client和server的XML-RPC实现。