PHP高级程序设计作者: Kevin McArthur副标题: 模式、框架与测试isbn: 7115193177书名: PHP高级程序设计页数: 300译者: 汪泳 等定价: 45.00出版社: 人民邮电出版社出版装帧: 平装出版年: 2009.7 此书主要针对有一点经验的中高级程序员,区别于一般的入门书籍,介绍的内容也都比较高级,但是都是日常开发工作经常会遇到或用到的,这些东西都是作者的经验之作,在一般的PHP书籍中大概都不会涉及到;对于想从初级跳跃到中高级很有帮助,值得一看。可以先到51cto试读几章: http://book.51cto.com/art/200906/126735.htm。
Session,中文译为“会话”,它的主要用途在于实现对客户端调用状态的保持。要理解这个意思,可以考虑以下的情况:你访问某个网站,然后这个网站是需要以会员身份登录的,那么当你输入用户名、密码正确登录后,这个信息怎么让下面的网页得知这个呢?我们知道,网页是无状态的,这句话的意思是:如果你访问 a 网页,再访问 b 网页,从实质上说,两个网页之间如果没有特别的手段是完全互不相干的(唯一的联系可能是这两个文件都存在一个服务器上)。php里的session是超全局数组(php 5以上版本),从这个角度来说,你可以把session看成是保存在内存里,供所有php脚本的访问的数据块。请参看以下相关资料:关于session我们知道,用户访问一个网站时往往需要浏览许多网页。对于一个通过PHP构筑的网站来说,用户在访问的过程中需要执行许多的PHP脚本。然而由于HTTP协议自身的特点,用户每执行一个PHP脚本都需要和Web服务器重新建立连接。又由于无状态记忆的特点,此次连接无法得到上次连接的状态。这样,用户在一个PHP脚本中对一个变量进行了赋值操作,而在另外一个PHP脚本中却无法得到这个变量的值。例如,用户在负责登录的PHP脚本中设置了$user="wind",却无法在另一个PHP脚本中通过调用$user来获得“wind”这个值。也就是说,在PHP中无法设置全局变量。每个PHP脚本中所定义的变量都是只在这个脚本内有效的局部变量。Session解决方案,就是要提供在PHP脚本中定义全局变量的方法,使得这个全局变量在同一个Session中对于所有的PHP脚本都有效。上面我们提到了,Session不是一个简单的时间概念,一个Session中还包括了特定的用户和服务器。因此更详细地讲,在一个Session定义的全局变量的作用范围,是指这个Session所对应的用户所访问的所有PHP。例如A用户通过Session定义了一个全局变量$user=“wind”中,而B用户通过Session定义的全局变量$user=“jane”。那么在A用户所访问的PHP脚本中,$user的值就是wind。php中的Session与Cookie 在PHP开发中对比起Cookie,session 是存储在服务器端的会话,相对安全,并且不像 Cookie 那样有存储长度限制,本文简单介绍 session 的使用。 由于 Session 是以文本文件形式存储在服务器端的,所以不怕客户端修改 Session 内容。实际上在服务器端的 Session 文件,PHP 自动修改 session 文件的权限,只保留了系统读和写权限,而且不能通过 ftp 修改,所以安全得多。 对于 Cookie 来说,假设我们要验证用户是否登陆,就必须在 Cookie 中保存用户名和密码(可能是 md5 加密后字符串),并在每次请求页面的时候进行验证。如果用户名和密码存储在数据库,每次都要执行一次数据库查询,给数据库造成多余的负担。因为我们并不能只做一次验证。为什么呢?因为客户端 Cookie 中的信息是有可能被修改的。假如你存储 $admin 变量来表示用户是否登陆,$admin 为 true 的时候表示登陆,为 false 的时候表示未登录,在第一次通过验证后将 $admin 等于 true 存储在 Cookie,下次就不用验证了,这样对么?错了,假如有人伪造一个值为 true 的 $admin 变量那不是就立即取的了管理权限么?非常的不安全。 而 Session 就不同了,Session 是存储在服务器端的,远程用户没办法修改 session 文件的内容,因此我们可以单纯存储一个 $admin 变量来判断是否登陆,首次验证通过后设置 $admin 值为 true,以后判断该值是否为 true,假如不是,转入登陆界面,这样就可以减少很多数据库操作了。而且可以减少每次为了验证 Cookie 而传递密码的不安全性了(session 验证只需要传递一次,假如你没有使用 SSL 安全协议的话)。即使密码进行了 md5 加密,也是很容易被截获的。 当然使用 session 还有很多优点,比如控制容易,可以按照用户自定义存储等(存储于数据库)。我这里就不多说了。
1、网店系统shopex,ecshop 等知名免费独立网店系统均为PHP语言开发。PHP+MYSQL也因为“开源、速度”等关键字成为网上购物系统的首选。目前国内最大的网店提供商shopex正在迅速扩张,需求大量的PHP程序员。2、开源论坛因为PHP的开源产生了很多的开源的系统。曾经风靡一时的Discuz!论坛系统就是很好的证明。相比较网店系统,做论坛类开发的PHP程序员需求不是很多。3、二次开发基本都是基于shopex,ecshop,Discuz!等做开源系统的二次开发。这样的公司大多是中小型公司。对程序员的要求除了PHP,也会要求程序员懂一些DIV/CSS,javascript/JQuery,Ajax等技术。以便最大化的节约成本。 作为一名合格的PHPer 首先就是对PHP的热爱,俗话说:“要做好一件事,要先去理解他,然后爱他。”PHP是一种很美妙的开发语言,你不需要再为定义一个变量的类型而犹豫不定,PHP会自动判断;你不需要在得到一个表单数据而声明N多的函数,一切都交给PHP吧!1、MYSQL是的,只有一门好的开发语言而不懂得数据库,我们依然是寸步难行的!还好,我们有一样开源、小巧的MYSQL!你知道的对于一个web开发人员来说,我们不能仅仅懂得(填/删/改/查-insert/delete/update/select),为了让我们的网站跑的更快、更顺畅我们还要懂得mysql的优化。没错!这个时候,视图、索引会帮你完成你想要的结果。2、Apache没有Apache我们的程序怎么能跑的起来呢!至少你要懂得一些Apache的基本配置信息吧!3、Javascript“后端语言群雄逐鹿,前端语言唯我独尊!”没错,这就是Javascript在前端语言地位的真实写照!你的网站想拥有绚丽的视觉效果,你离不开 Javascript;你的网站想拥有良好的客户体验,你离不开Ajax!纵然有时候,YUI,JQuery等就Javascript框架会帮助我们提高效率,但是,别忘了,他们的基础是Javascript!4、算法其实,按照常理来说,算法是程序员的“灵魂”。一名合格的程序员,他第一要求的往往是过硬的算法基础。但是,web开发颠覆了这种传统。 因为PHP主要用于web开发,也就不太需要这种技能。 所以,很多时候,人们都在讨论是不是web开发人员不能算作真正的程序员呢? 在一线城市入门级的php程序员收入(税前)在4000~6000元人民币;熟练级收入(税前)在6000~10000元人民币之间;技术骨干收入(税前)一般在10000+元人民币之间。
PHP(Hypertext Preprocessor)是一种通用开源脚本语言。PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
1. PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
2. PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
3. PHP支持几乎所有流行的数据库以及操作系统。
4. 最重要的是PHP可以用C、C++进行程序的扩展!
PHP 脚本主要用于以下三个领域:
(1)服务端脚本。这是 PHP 最传统,也是最主要的目标领域。开展这项工作需要具备以下三点:PHP 解析器(CGI 或者服务器模块)、web 服务器和 web 浏览器。需要在运行 web 服务器时,安装并配置 PHP,然后,可以用 web 浏览器来访问 PHP 程序的输出,即浏览服务端的 PHP 页面。如果只是实验 PHP 编程,所有的这些都可以运行在自己家里的电脑中。请查阅安装一章以获取信息。
(2)命令行脚本。可以编写一段 PHP 脚本,并且不需要任何服务器或者浏览器来运行它。通过这种方式,仅仅只需要 PHP 解析器来执行。这种用法对于依赖 cron(Unix 或者 Linux 环境)或者 Task Scheduler(Windows 环境)的日常运行的脚本来说是理想的选择。这些脚本也可以用来处理简单的文本。请参阅 PHP 的命令行模式以获取信息。
编写桌面应用程序。对于有着图形界面的桌面应用程序来说,PHP 或许不是一种最好的语言,但是如果用户非常精通 PHP,并且希望在客户端应用程序中使用 PHP 的一些高级特性,可以利用 PHP-GTK 来编写这些程序。用这种方法,还可以编写跨平台的应用程序。PHP-GTK 是 PHP 的一个扩展,在通常发布的 PHP 包中并不包含它。
(3)PHP 能够用在所有的主流操作系统上,包括 Linux、Unix 的各种变种(包括 HP-UX、Solaris 和 OpenBSD)、microsoft Windows、Mac OS X、RISC OS 等。今天,PHP已经支持了大多数的 web 服务器,包括 Apache、Microsoft Internet Information Server(IIS)、Personal web Server(PWS)、Netscape 以及 iPlant server、Oreilly Website Pro Server、Caudium、Xitami、OmniHTTPd 等。对于大多数的服务器,PHP 提供了一个模块;还有一些 PHP 支持 CGI 标准,使得 PHP 能够作为 CGI 处理器来工作。
插件丰富,网上的解决方案有很多,而且还有庞大的开源社区可以提供帮助。
跨平台性强 效率高 图像处理
面向对象
[在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。]
PHP 性能很强 . 配合简单、稳定、容易部署,总的来说 php能帮你低成本完成事情
1)函数命名不规范 驼峰法和下滑线,传参位置不一 你知道的
2)单线程 ; PHP本身,一直以来php就是个单进程的程序;虽然php的pthreads扩展早就有了。但是它不够稳定,运行运行着就会莫名其妙的自己挂掉;php的扩展都是C写的,这也就意味着任何一个扩展出现线程竞争资源控制问题都能让整个挂掉
3)核心异步网络不支持(当然在linux只有同步非阻塞网络模型)。却少了这个使得很难开发一个能够承受大并发的网络应用。传统的网络模型和io都阻塞的。这样基本的编程的做法就是一个进程(或者线程)响应一个用户链接请求。因此无法完成像实时网游那样需要成千上万网络连接的任务。尽管php也有Libevent、eio扩展对此算是某种程度上面的弥补,但是感觉都不是那么完善
4)只支持web开发,不方便做 .exe文件,不方便做桌面应用程序. 不方便做手机程序.
5)不适合做爬虫、自动运行脚本.科学运算项目,这语言基本构架就不适合,虽然有很多方法实现。
6)后期维护困难。后期提速空间局限性较大。
今朝全球5000万互联网网站中,有60%以上使用着PHP手艺;
PHP也当选是全球五大最受接待的编程说话,而且是唯一当选的剧本说话;
国际80%以上的静态网站都在使用PHP开拓,百度、网易、新浪、搜狐、阿里巴巴、腾讯、金山等,都有PHP的影子;
AlexaTOP500中国网站排名,有394家使用了PHP手艺,比例为78.8%。(火爆不?)
以下是某支流搜索引擎在某时辰收录各WEB说话页面个数的斗劲:
Php:2,150,000,000
ASPX:1,370,000,000
Java:6,710,000,00
Asp:1,140,000,000
各类类型在搜索引擎的收录景象证实:可以或许开拓网站的说话良多,能做到精晓的只需一种;在Web手艺方面,PhP利用更遍及。
2015年6月份PHP新浪科技等诸多大媒体都在转载了“互联网十大抢手人材”,PHP排名后端说话第一位。据统计,PHP人材供求比抵达1:10,php高端人材特别稀缺。
PHP、C++、java这三种说话都是相当优良的剧本说话,为什么PHP能大行其道,位居榜首呢?
从概略下去看,这是就业景象使然。越来越多的新公司或新项目使用PHP,这使得PHP相关社区越来越活跃,而这又反过来影响到良多项目或公司的挑选,构成一个良性的轮回。就我们今朝体味到的景象,PHP是国际大部门web项手段首选,而且有良多公司从其它说话(如ASP,JAVA)转到了PHP。适合的就是最好的,PHP的快速,开拓成本低,周期短,前期保护费用低,开源产物丰盛,这些都是另外两种说话没法对照的。
以上各种消息都在给我们传送一种旌旗灯号:PHP手艺今朝很给力。
薪资也是反映PHP手艺是不是给力的一个很首要的身分,PHP是不是很有前景,看中立网站职友集显现的薪资即可!
总之,在全球前一百万的网站中,大约有70%的站点使用PHP开拓,PHP的用武之地不只仅只是在网站开拓,在游戏开拓、广告系统开拓、API接口开拓、移动端后台开拓,内部OA系统开拓上都能使用PHP。所以不管是斟酌开拓周期,仍是合计开拓成本,PHP都是值得优先斟酌的。不管另外说话若何兴衰,但企业会一向需求PHP。
讲下自己姓名年龄哪里人,很高兴参加这次面试,我希望应聘PHP程序员的职位,就可以了。至于你擅长的技术后面聊开了的时候自然而然地就会问起。千万别说什么我性格开朗善于团队合作学习能力强之类的陈腔滥调,企业HR其实很反感那种背书一样的自我介绍。一般都说自己看的懂代码,用得了模块,会用一些php cms 的模板做网站。。。
关于面试的自我介绍你使用以下的要点进行来说明:
是否熟练掌握一种或以上开发语言;
是否熟悉Oracle、Mysql等数据库;
是否具有较强的文档撰写能力;
是否具备独立分析和解决问题的能力;
是否有良好的职业道德和工作态度,工作认真、踏实,责任心和进取心强;
是否有良好的客户交流沟通能力和需求理解能力,较强的协作精神和团队意识;
思维能力:能够找出引发事件的多种可能原因,确定行为的不同后果,发现复杂事物之间存在的错综联系,逐步排除不太相关的信息,对问题进行准确定位;
团队合作:愿意与他人合作,主动与其他成员进行沟通交流,彼此分享信息、知识、资源;
主动性:及时发现机遇或问题,并针对其快速展开行动。
简单web服务器处理过程请看图html浏览器发送请求->web服务器收到请求->服务器查找请求的文件向客户端发送->浏览器收到并显示php.asp.aspx.jsp等程序请求图浏览器发送请求->服务器收到->服务器找到文件(过程中会判断后缀为php的)->启动php程序将文件运行起来(如代码echo 1+1;)->php返回运行结果(2)->发送给浏览器->浏览器收到(php运行结果2)并显示
去找书看吧
面试的自我介绍你使用以下的要点进行来说明:
1.是否熟练掌握一种或以上开发语言;
2.是否熟悉Oracle、Mysql等数据库;
3.是否具有较强的文档撰写能力;
4.是否具备独立分析和解决问题的能力;
5.是否有良好的职业道德和工作态度,工作认真、踏实,责任心和进取心强;
6.是否有良好的客户交流沟通能力和需求理解能力,较强的协作精神和团队意识;
7.思维能力:能够找出引发事件的多种可能原因,确定行为的不同后果,发现复杂事物之间存在的错综联系,逐步排除不太相关的信息,对问题进行准确定位;
8.团队合作:愿意与他人合作,主动与其他成员进行沟通交流,彼此分享信息、知识、资源;
9.主动性:及时发现机遇或问题,并针对其快速展开行动。
谈论时自然会问。不要说我性格外向,善于团队合作和学习的刻板印象。事实上,企业人力资源部非常反感自我介绍的背书。一般来说,我理解代码并使用模块。我会使用一些PHP CMS模板来建立网站。
扩展资料:
1.一般的程序员都有四年的在专业领域的学习,需要获得在程序领域的学士学位,不论是数学方面的还是工程方面的都是可以的。不同分类方式程序员分为:
(1)按照所使用的编程语言来分,程序员分为:c/c++程序员、php程序员、java程序员、delphi程序员、net程序员、asp程序员等;
(2)按照面向的开发平台来划分,程序员可以分为web程序员、移动开发程序员;
(3)对进行移动设备程序开发的人员来说,针对的操作系统不同,还可以分为针对苹果ios程序员以及针对安卓程序员。
2.服务于计算机科学的程序称为计算机程序,也称为软件,是指一组指示计算机或其他具有信息处理能力装置执行动作或做出判断的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。
参考资料:
百度百科-程序员
PHP是一种简单的,面向对象的,解释型的,健壮的,安全的,性能非常之高的,独立于架构的,可移植的,动态的脚本语言。PHP具有和JAVA类似的Class关键字。因为不需要虚拟机,以致速度比JAVA快5倍。PHP 正迅速变成一种标准的,多用途的,面向对象的脚本语言。PHP不仅可用来开发Web应用程序,也可以开发普通应用程序。 PHP是一种功能强大的脚本语言。PHP将击败PERL/Python并取而代之。PHP是下一代的PERL/Python脚本。PHP可以胜任任何PERL/Python做的工作,并且做的,更好,更简洁!这个行业目前还是比较吃香的,在北京薪水在3000-6000之间!目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E- business,它的核心是采用JSP/Servlet的Web Sphere。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言