PHP怎么学习

用户名:朝花惜拾
访问量:349
无忧币:20
注册日期:
给大家推荐一个php教程下面是php教程目录,有感兴趣的可以看看光盘(一)\php基础班\传智播客_韩顺平_php从入门到精通 视频教程 第001讲 html介绍 html运行原理①.wmv光盘(一)\php基础班\传智播客_韩顺平_php从入门到精通 视频教程 第002讲 html运行原理② html文件基本结构 html元素和属性.wmv光盘(一)\php基础班\传智播客_韩顺平_php从入门到精通 视频教程 第003讲 符号实体 url说明 超链接 发送电邮.wmv光盘(一)\php基础班\传智播客_韩顺平_php从入门到精通 视频教程 第004讲 图像 表格 实际应用-菜谱 课堂练习-课程表.wmv光盘(一)\ph..
一套比较全面的php教程,基础视频及一些小的实战项目,下面是视频目录光盘(一)\php就业班(上)光盘(一)\PHP技术交流专区.url光盘(一)\《传智特刊》属于IT学子的杂志光盘(一)\《程序员的奋斗》.mov光盘(一)\传智播客PHP面试宝典2013版(上卷基础篇).pdf光盘(一)\传智播客PHP面试宝典2013版(下卷高级篇).pdf光盘(一)\微电影《青春代码》――IT男为爱做黑客 青春无悔.mov光盘(一)\有问题就找IT问答精灵.url光盘(一)\php基础班\PHP基础班课堂笔记和PPT(发布版).zip光盘(一)\php基础班\传智播客_韩顺平_php从入门到精通 视频教..
这个哥们再次告诉我,编程可以改变一个潘康纳钭刺
说一下这个哥们的经历,以第一人称,这个哥们学习之路还是php教程 当时我刚转到我们那儿一所重点高中,第一天上语文课的时候, 授课老师认出了我:“你不是在别的学校读书的吗,怎么转到这里来了呢?”我如实回答:“我舅舅在这儿当老师,而且转到这儿我可以更好地学习”。但语文老师的讥讽浇灭了我原本要好好学习的雄心壮志。“最看不起走后门的了,没有真本事却待在重点班。”这些话刺激了我的自尊心,也激发了我内心不甘的种子。然而..
学习就要一鼓作气,程序也是同理。学习php还是冲基础开始,跟多的要实践,可以在网上搜一些php教程,跟着教程来敲代码。也可以找一些资料来看!任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。
找一些php教程不会让你的课程变得单调1.熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性 达到熟悉程度2.理解动态语言的概念,运做机制,熟悉PHP语法3.学习如何将PHP与HTML结合起来完成简单动态页面4.接触MYSQL,开始设计数据库程序5.不断巩固,摸透大部分PHP常用函..
订阅我的博客
一周热赞排行
51CTO推荐博文新手如何学习PHP - bicabo - 博客园
从自己向别人问怎么学PHP开始,到后来不少人又来问怎么学PHP,不管是新手,还是老鸟,似乎总是感觉摸不出一条清晰的脉络来,不过,既然学会了PHP,那么我走的这条路或多或少的有一定借鉴性。&&& PHP的背景恐怕就不用赘言了,我相信大家选择一种语言,并不是看它的背景和悠久历史,更重要的是看它的实用性,华而不实的语言哪怕是再辉煌的历史,也毕将步向没落,可喜的是PHP经受住了考验,也因此,它确实是一种值得学习的语言。&&& 一直是听从别人的经验长大的,也因此在前辈们的经验里让少走了许多的弯路,更快的步入了正规,在此向那些我至尽不知道其名字的前辈们道声谢谢,在的眼里,帮助不分大小,只要是帮助,总会让的心里暖融融的,我想,前辈们帮助我,并不是为了得到我的一句谢谢,更多的是出于一种责任感和对的期望,所以我想,只有学好PHP,才能对得起前辈们的汗水。&&& 正如我所说的,也终于感觉到了一种责任感,不知道自己的经验到底能帮助新手多少,但是明白,现在到了履行责任的时候了,我有必要把自己的经验告诉给所有希望学好PHP的人,只有这样才能让中国的PHP不断的进步,不断的发展,在世界上占据一席之地。&&& 学习PHP的这段期间,感觉国内的PHP环境越来越成熟,规范也在逐渐的健全,PHPCHINA的成立,标志着与官方直接挂钩的PHP机构在中国正式落户了,在此献上迟到的掌声!&&& 好的,切入正题:&&& 我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:&&& 的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。&&& 我先把我自己学习PHP的过程做一下概括:&&&&&&& (1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度&&&&&&& (2)理解动态语言的概念,运做机制,熟悉PHP语法&&&&&&& (3)学习如何将PHP与HTML结合起来完成简单动态页面&&&&&&& (4)接触MYSQL,开始设计数据库程序&&&&&&& (5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板&&&&&&& (6)完成一个功能齐全的动态站点&&& 我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。&&& 我先解释一下我的学习思路。&&& 首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。&&& 在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。&&& HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西。&&& 也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?&&& OK,掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。&&& 我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这毕竟是咱的成果。&&& 那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。&&& 对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,如果你学过其他的语言,也许会觉得PHP的确相当的简单,但是如果你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。&&& 书过三遍自然熟,这个简单的道理告诉我们,即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。&&& 在一段挣扎之后,聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。&&& 搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。&&& 高兴一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。&&& 头晕归头晕,目眩归目眩,你不可能吃饭的时候咬了自己一下舌头就从此不吃饭了不是?放下畏惧,继续努力,咱们是来征服它的,而不是被它征服的,振奋起来吧同志。&&& 在一番搏斗之后,你终于理解了数据库的概念,而且让你兴奋不已的是你终于可以通过PHP来连接数据库了,这期间你是怎么学会的,我们不去考证了,但是事实证明,你已经可以了。&&& 学会了PHP和数据库的你,无疑是左手拿着MOTOLOLA右手拿着NOKIA,要多潇洒,有多潇洒,哈哈,终于学会了,但是可能这个时候,又会有人不经意的拍拍肩膀对你说:哥们,别高兴的太早,你还是菜鸟,离学会还差着一大截呢!&&& 等到你发奋努力的学会了用PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。&&& 这个时候的你也许是这种状态:&&&&&&& 你会HTML吗?会,我能编好几个大表格排板的网页啦!&&&&&&& 你会PHP吗?会,我会把一加一的运算写在函数里,然后调用啦!&&&&&&& 你会MYSQL吗?会,我会把我的信息在数据库里插入删除啦&&& 那,接下来你该怎么做呢?我觉得,小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。&&& 花了一段时间,你终于学会把表单的数据插入数据库,然后显示出来了,应该说一个程序的雏形已经诞生了。&&& 但是,你可能瞅瞅东,看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?&&& 不要急,可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。&&& 再有条件的话,买本书看看吧,《PHP+MYSQL WEB开发(第三版)》号称圣经级,(也许是个不错的选择(声明:作者没给我啥好处费,我也不是书托,隔着大老远,我连他老兄的面都没见过的说-_-)&&& 巩固了自己的知识,熟悉了PHP和MYSQL开发的要领之后,再回头看你写的那个留言本,你也许会怀疑那真的是你写的吗?当然,如果屋里还有鬼的话,也许是它写的-_-&&& 这个时候,你的留言本应该加入注册以及分页功能了,而如果你更强的话,UI(用户界面)也可以加强,完成之后,感觉是不是特有成就感?不管怎么样,咱好歹是写了一个动态网站程序了,放在自己的网站上耍耍吧,让好朋友来看看,嘿,看咱写的多棒,然后再在网上宣传一下。&&& 几天之后你再打开留言本,哎?哇,一下弹出N多页面!很明显,你的留言本并没有做好安全防范,被人用JS代码小小的耍了一下,我很同情你这个时候的感受,但是没有别的办法了,继续努力吧!&&& 你发奋努力,熟悉了安全方面的问题,然后又设计了一些程序,感觉还不错。&&& 那么接下来,这就算学会啦?NO,NO,NO,还早呢,你至尽还没碰过OOP之类的吧?模板呢?&&& 恩,学!加紧学呀学,学会了这些之后,你又学会了生成静态网页,现在你应该接触一下XML了,恩,XML也了解了,那么AJAX你也得接触接触吧?AJAX完了….然后…&&& 总而言之,你绝对不会发现你全部都学会了,一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!&&& 我想通过我的一番YY,你也应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,不敢打包票^0^&&& 看完之后你发现,罗嗦这么多,对我一点用处没有啊,我知道该怎么学,但是我想如何才能更快的学,一周速成,啊不,24小时速成那种,你有没?&&& 我…….我没有,但是2分钟之内把你扁进医院里,我倒是有把握-_-&&& 学东西,永远不要妄想有速成这一说,告诉你了一个方式,但是缺少努力这一环节,那也是白搭。但是有一点我可以给你保证的就是,你学会了PHP,那么学其他的语言,肯定速成,反过来也一样,如果你之前学过其他的语言,那么学PHP肯定快。&&& 不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。&&& 讲了这么多,无非是想说:学习PHP不仅要掌握方法,更多的是付出汗水,我不希望看到中途放弃的人,相信自己,相信自己的选择,更要相信自己的能力,如果自己想放弃,暴力一点的话,就自己抽自己一个嘴巴,然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)&&& 另外要叮嘱各位的是,抵御诱惑,ASP/PHP/JSP/.NET的对比也许会让你无所适从,你也许学了一半PHP,又开始打C#的主意,或者有人说JAVA很强,这个时候的你绝对不能动摇,哪怕你真想学,也得学会了PHP。然后再学,见异思迁是最不可取的,狗熊掰玉米就是这个道理,如果经常中途放弃,只能是一无所获,还浪费了N多的时间和经历,得不偿失,最重要的是,你会被别人瞧不起,没有人会喜欢和见异思迁的人交朋友,因为这种人太不安分,太不可靠,因此,你必须要强迫自己完成自己的目标,哪怕可能会很难受,也得坚持,毅力就是这么锻炼出来的。 引用地址:谈谈新手如何学习PHP^_^
随笔 - 250问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
本人初学PHP没多久,一直看视频教程一边敲代码,现在有点迷糊,各位大侠能分享下自学的经验吗?
这个问题已被隐藏,原因:
来源: 101 新手上路
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
楼上有人建议看 PHP 官网手册 ,本人表示反对,手册是比较系统详细的讲解,但是如果从头到尾读起来难免觉得枯燥无味,会让初学者失去兴趣。不建议看教学视频,进度太慢,我觉得学习这个事情不能偷懒。建议按以下步骤来学习 PHP:
找一本 PHP 语法的书,从头到尾边看书边实践里面的代码
如果有必要,将上面的书再看一遍,遇到不理解的地方,再去看 PHP 官网手册以及使用搜索引擎
这个时候你应该基本了解 PHP,可以连数据库进行增删改查数据了,尝试着自己动手写一个留言板这样简单的系统。
这时该看看面向对象的一些概念,结合自己写的小项目想想结构有没有优化的地方
看开源的框架源码(这步请注意找一些比较小巧的开源框架如 CI,Slim ),增强对 MVC 的理解
更加深入的系统的学习(MySQL Linux C 语言 javascript html css redis 等)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
能把这个视频教程看完,应该就能做一些东西了
要想进一步加强,可以完整的看一看PHP官方手册:
官方手册的知识更加全面,而且有很多细节、原理方面的东西
"函数参考"那部分不必全看,但是 日期与时间、文件系统、其它基本扩展、Session、变量与类型 这几部分建议一定要翻一下,里面介绍了很多常用的函数和类。
这些函数不必都记住,只要有个印象就行,以后用到时再回来翻,用的多了自然就记住了。
官方手册的内容比较多,得静下心来慢慢的看。也可以选择每隔一些天看一部分,让自己有个消化的过程。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
有点基础以后看看这个, 很多 平常注意不到的细节 都有说明,挺好的,
也能当个 简单的中文手册用,挺全胡
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
或者w3上都可以
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
我说下我的学习php的过程
亲自动手在windows32 windows64 linux上架设apache+mysql+php环境,并会配置apache和php配置文件,起码知道为什么这样配置。
了解并亲手尝试写最基本PHP代码书写规范。
PHP+MySQL的连接 增删改操作。
PHP文件机目录的操作。
PHP类学习,学会代码的复用。
尝试写写小Demo 结合PHP提供的官方API
PHP提供的官方API 是工具书 用到再去查 去用
到这里也就差不多了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
先买一本靠谱的书
推荐兄弟连的《细说PHP》第二版,真的很详细
建议一边看书一边看视频
一本书看完之后自己可以试着写一个简单的网站,前台自己拉个页面,后台自己写个CMS
其实闭门造车的自学很难提高的,要做项目,最好还是报一个靠谱的培训机构,国内的PHP培训机构很多
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
以我自己的经历来说一说吧。野生程序员一枚,大学期间断断续续倒腾过一段时间的PHP、Python,都是自己造一些小项目,也没成什么气候。毕业后进本专业的公司工作了一年半,期间甚不爽,于是裸辞想转行到IT。之后三个月自己在家遍读了各种计算机名著及教材,每天写代码学代码,然后开始找工作。
先进了一家小公司,做商城系统外包开发,吃尽各种苦头,忍辱负重三个月,感觉整个人脱胎换骨,于是裸辞,开始找下家。可以说,这三个月的开发是我最痛苦的日子,每天加班到十点,面对数不清的问题,前台后台全部要照顾到,什么都是自己亲自上马:PHP要自己写,js要自己写,css要自己写,图片要自己切自己改,服务器要自己建。就是这种糙快猛的环境下,自己的技术水平有了很大提高,高压力下的工作能力也是这时候锻炼出来的。
裸辞之后,又开始读各种名著和教材,每天至少十小时写代码学代码,一个月之后开始找工作。正值八月酷暑,期间走遍了深圳各大城区,面试过的公司差不多十家,其中三家给了offer,一家外企过了四面结果还是被刷了,其他公司基本上一看我工作经历之后就否决了。
可能运气比较好,最后终于拿到国内互联网三巨头之一的offer。
总结:自学非常重要,实际项目经验也很重要。不要以为计算机基础不重要,学习计算机基础对学习编程语言非常有用。只要对自己狠一点,多下功夫,没有攻不破的东西。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Lamp兄弟连的视频不错,我就是看着过来的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
英文好的话推荐看
(免费版本),虽然要付费(年付15美金/月),但是你得到的将更多。我已经持续付费两年了,最早学php,然后跟进CI、Laravel等框架,后来学jquery、angularjs等,都在项目中实际应用了,ror、nodejs也跟着学了学,但是没有机会使用。老外高手做的教学不但教程安排合理,节奏比较快,不浪费你的时间而且让你能够保持高度注意力集中,并且可以看看高手的编程习惯和工具,学习到的都是业界最新的东西,如各种编辑器的workflow,秒杀国phper的视频。
我最满意的一次购买,你收获的是知识
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
视频看多了,迷茫了很正常,,,如果都认真的看了就代表你有一定的PHP基础,那么这时候就要多做项目了!先从留言本做起,再做个个人博客,然后再做个复杂点儿的CMS,或者小OA,所谓经验,其实就是解决问题的方法,从项目中不断思考,就能不断收获!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
比较偏门和极端的方式…去职场磨练,写一个很美的履历,就算不是真的也不用太在意,先会一点基本的(不能太差),然后,进去公司后,有人付你薪水(虽然不高),有人可以问,有实作可以作,再加上主管的压力,你的功力会飞奔的成长。也许第一间一个月二个月就被开除了,但这样的方式,第二间第三间后 你的实力就够了。缺点是,压力会很大…会很挫折。优点是:有人付你薪水,你不用缴钱去上课还有人可以问
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
想學好PHP OOP, 直接上Zend Framework 2,半年後你會覺得自己進步許多
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
好多大神啊~
同步到新浪微博
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App自学 PHP,如何不走弯路? - 知乎1139被浏览245177分享邀请回答306 条评论分享收藏感谢收起10741 条评论分享收藏感谢收起查看更多回答3 个回答被折叠()高效率php学习的方法,谨记!
在PHP中,单纯按照自己思路去解决问题往往会是一种错误的办法。这并不是因为你是一个糟糕的程序员,而是因为如果你想写出好的可维护性强的代码,有些标准技巧是你必须要使用的。就其本质而言,如果你掌握了以PHP语言“做事”的方式,那么在使用它时就会得心应手,因此值得你去投入精力去了解这些方式。下面让我们一起看一下你需要知道的10大技巧。
1、如何正确的创建一个网站的Index页面
创建每一个网站时,建立网站的index页面是首要做的事情之一。如果你是一个PHP新手,在编写index页面时典型的做法是只对index页面所需的内容进行编程,其它链接创建另一个页面。不过,如果想学习一种更高效的方式来实现PHP编程,可以采用“index.php?page=home”模式,许多网站都在采用这种模式。
2、使用Request Global Array抓取数据
实际上我们没有任何理由使用$_GET和$_POST数组来抓取数值。$_REQUEST这个全局数组能够让你获取一个get或form请求。因此,多数情况下解析数据的更高效代码大体如下:
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 0;
3、利用var_dump进行PHP代码调试
如果你在寻找php调试技术,我必须说var_dump应该是你要找的目标。在显示php信息方面这个命令可以满足你的所有需要。而调试代码的多数情况与得到PHP中的数值有关。
4、PHP处理代码逻辑,Smarty处理展现层
Smarty是一个使用PHP写出来的模板PHP模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。
5、的确需要使用全局数值时,创建一个Config文件
动辄创建全局数值是一种糟糕的做法,不过有时候实际情况的确又需要这么做。对于数据库表或数据库连接信息使用全局数值是一个不错的想法,但不要在你的PHP代码中频繁使用全局数值。另外,更好的一种做法是把你的全局变量存放在一个config.php文件中。
6、如果未定义,禁止访问!
如果你正确的创建了页面,那么任何其他人没有理由访问index.php或home.php之外的index.php页面。一旦index.php被访问后,你可以通过获得变量的方式来打开需要的页面。你的index页面应该包含类似的以下代码:
define('yourPage',1); 然后,其它页面应该包含:
if (!defined('yourPage')) die('Access Denied'); 这么做的目的是防止直接访问你的其它php页面。这样,任何试图不通过index.php访问其它网页的人,将得到“访问被拒绝”的消息。
7、创建一个数据库类
如果你正在进行数据库编程(在PHP中非常常见的任务),一个不错的想法是创建一个数据库类来处理任何数据库管理功能。示例代码如下:
public function dbExec($query) { $result = $this-&db-&exec($query); if (PEAR::isError($result)) errorRedirect($result-&getMessage(), true); else return $ }
这个函数仅接收一个查询语句并对其执行。它还处理可能出现的任何错误。你还可以在这儿包含审核代码,不过我更喜欢使用一个类似的审核函数:
// checks if arguments given are integer values not less than 0 - has multiple arguments function sanitizeInput() { $numargs = func_num_args(); $arg_list = func_get_args(); for ($i = 0; $i & $ $i++) { if (!is_numeric($arg_list[$i]) || $arg_list[$i] & 0) errorRedirect("Unexpected variable value", true); } }
8、一个php文件处理输入,一个class.php文件处理具体功能
不让代码变得混乱的一个重要方法是:获取用户输入后,将其重定向到其它函数来进行处理。原理非常简单,php文件获得我们需要的任何输入,然后将其执行重定向到类文件中的一个函数。举例来讲,假设有一个类似“index.php?page=profile&action=display”的URL。由profile.php来检索该网址并得到操作是“display”。然后使用一个简单的switch函数,我们来执行真正的显示函数:
require_once PROJECTROOT.'libs/messages.class.php'; $message = new Message(); switch ($action) { case 'display': $message-&display(); ...
如上所示,我使用了一个消息类,然后开始进行switch检查。$message只是被类中的调用函数使用的一个对象。
9、了解你的SQL语句,并总是对其审查(Sanitize)
正如我以前所提到的,任何php网站中最重要的部分有99%的可能是数据库。因此,你需要非常熟悉如何正确的使用sql。学会关联表和更多高级技术。下面我将展示一个使用MySQL的函数示例,并使用本文第7条函数进行审查。
private function getSentMessages($id) { $this-&util-&sanitizeInput($id); $pm_table = $GLOBALS['config']['privateMsg']; $users = $GLOBALS['config']['users']; $sql = "SELECT PM.*, USR.username as name_sender FROM $pm_table PM, $users USR WHERE id_sender = '$id' AND sender_purge = FALSE AND USR.id = PM.id_receiver AND is_read = TRUE ORDER BY date_sent DESC"; $result = $this-&dbQueryAll($sql); return $ }
首先,我们对用户输入进行检查(通过一个GET变量传递消息id),然后我们执行我们的SQL命令。注意这儿SQL的用法。你需要了解如何使用别名和关联表。
10、当你只需要一个对象时,使用单例模式
在PHP中相当常见的一种情形时,我们只需要创建一个对象一次,然后在我们的整个程序中使用它。一个很好的例子就是smarty变量,一旦被初始化后就可以在任何地方使用。这种情形的一个很好实现方案就是单例模式。示例代码如下:
function smartyObject() { if ($GLOBALS['config']['SmartyObj'] == 0) { $smarty = new SmartyGame(); $GLOBALS['config']['SmartyObj'] = $ } else $smarty = $GLOBALS['config']['SmartyObj']; return $ }
注意,我们拥有一个全局smarty变量(该示例中它在config.php中被初始化),如果它的值为0,我们将创建一个新smarty对象。否则,它意味着该对象已经被创建,我们只需要返回它。
更多精彩内容请关注 ---- 微信公众号“houdunit”
看完不要跑记得出来吐吐槽!╰( ̄▽ ̄)╮
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
后盾网是一家专业六年只做PHP培训的机构。学生平均就业薪资高达10700元。
后盾网PHP高薪精英班,毕业学员平均薪资10700元,包就业,就业率100%
今日搜狐热点}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信