对于我的个人业余项目和未来的编程创收活动,PHP作为我的一种编程语言的选择,已经从此退役了。作出这个决定并不容易,但是对于我热爱的编程事业的延续,这是必要的。你知道,我可不是仅仅因为热爱编程才做程序员,因为我不会干其它的。
历史
一切都开始于1999年,我8年级。互联网真正开始显示出魅力,我想编程。学习了基本的HTML,我可以做出网页,但我想让这些网页有更多的交互功能。Perl成为了选择,嵌入Apache里作为CGI。Perl最初不是做这个的,对于一个对Unix,Linux,Apache和HTTP是如何工作的一无所知的孩子,我不可能配置它们、让它们跑起来。
最终我找了一个web主机,上面所有的东西都已经配置好了,我就这样可以神奇的使用了。算是吧。我花了数月琢磨Perl,但这个东西实在让人困惑。有谁还记得那些正则表达式和大堆的代码来解析请求变量、获得一个$POST 和 $GET 数组?对我来说绝对是天书,我拷贝粘贴,假装知道自己在干什么。有谁还记得恐怖的Matt’s Script Archive这个脚本吗?
<ol class="dp-c"> <li class="alt"><span><span># From Matt's Script Archive </span></span></li> <li> <span class="keyword">if</span><span> (</span><span class="vars">$ENV</span><span>{</span><span class="string">'REQUEST_METHOD'</span><span>} eq </span><span class="string">'GET'</span><span>) { </span> </li> <li class="alt"> <span>@pairs = split(/&/, </span><span class="vars">$ENV</span><span>{</span><span class="string">'QUERY_STRING'</span><span>}); </span> </li> <li> <span>} elsif (</span><span class="vars">$ENV</span><span>{</span><span class="string">'REQUEST_METHOD'</span><span>} eq </span><span class="string">'POST'</span><span>) { </span> </li> <li class="alt"> <span>read(STDIN, </span><span class="vars">$buffer</span><span>, </span><span class="vars">$ENV</span><span>{</span><span class="string">'CONTENT_LENGTH'</span><span>}); </span> </li> <li> <span>@pairs = split(/&/, </span><span class="vars">$buffer</span><span>); </span> </li> <li class="alt"><span>} </span></li> <li> <span class="keyword">foreach</span><span> </span><span class="vars">$pair</span><span> (@pairs) { </span> </li> <li class="alt"> <span>local(</span><span class="vars">$name</span><span>, </span><span class="vars">$value</span><span>) = split(/=/, </span><span class="vars">$pair</span><span>); </span> </li> <li> <span class="vars">$name</span><span> =~ tr/+/ /; </span> </li> <li class="alt"> <span class="vars">$name</span><span> =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(</span><span class="string">"C"</span><span>, hex(</span><span class="vars">$1</span><span>))/eg; </span> </li> <li> <span class="vars">$name</span><span> =~ tr/</span><span class="comment">//d; </span><span> </span> </li> <li class="alt"> <span class="vars">$value</span><span> =~ tr/+/ /; </span> </li> <li> <span class="vars">$value</span><span> =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(</span><span class="string">"C"</span><span>, hex(</span><span class="vars">$1</span><span>))/eg; </span> </li> <li class="alt"> <span class="vars">$value</span><span> =~ tr/</span><span class="comment">//d; </span><span> </span> </li> <li> <span># Build a hash with </span><span class="vars">$name</span><span> </span><span class="keyword">and</span><span> </span><span class="vars">$value</span><span> </span> </li> <li class="alt"><span>} </span></li> <li><span> </span></li> </ol>
数月后,我风闻有一种语言叫PHP。你只需要向服务器上传一个.PHP文件,一切都搞定了。你直接能访问表单域里的变量,它们可以跟在URL后面提交。不须用正则表达式分析环境变量。相当的迷人。
不仅访问GET 和 POST 变量是如此的容易,连接数据库也是要命的简单。所有的都是在Windows上?!愿望很快就成了现实。有人不久写出了WAMP的安装包——因为安装Apache和MySQL仍然不是一个很轻松的事。感觉就像是在天堂里了。最终,我开始编写能把数据存入数据库,取出数据,并操作它们的web应用了。
当然,现在知道的什么SQL注入攻击,XSS攻击,CSRF攻击,session注入攻击或其它的流行的安全漏洞问题,当时一无所知(公平的说,我肯定,当时整个行业都不太清楚这些东西)。
但我很快的就开始编程了,疯了似的。我开发论坛,我开发基础的网站生成器,日志和内容管理系统。我喜欢这些。总有一些新的东西要学,总有一些新的东西要做。爸爸的公司给了我很多便利,特别是他们的软件开发组。那是一个在休斯敦的小web开发公司,我有机会在里面和很多比我年长的程序员一起工作,之后我开始能独自承担大的网站开发。整个大学期间都在做这个,甚至开发了一个总共有16862行代码的PHP系统,提供给一个非盈利组织使用(在那时,我已经知道了常见的网站漏洞,并进行了修补)。
Rails和Django并没有吸引走我。我非常了解PHP,我有自己的框架,能够很快的让东西开发完成并跑起来。
就这样,我经历了MVC框架变革过程。作为一个PHP开发者,我的工作情况越来越好(更好的待遇,更好的职位),但慢慢的我发现,在我自己的业余时间里,写出的代码非常的好,可是在工作时间接触那些公司的代码却很糟糕。不是一般的糟。没法再糟了。做这些业余项目让我保持清醒,因为公司的那些程序在提醒我,让我痛苦不堪。
热情枯竭
这就是为什么PHP从我的业余项目和新的创收活动中退役的原因。我疲倦了PHP。热情耗尽了。我感觉对这种语言已经达到了最高水平,如果不转向新的语言,对这种语言我就没什么可做的了,我可不想落入这种状态。
我作为一个职业PHP开发人员挣了很多钱,我计划继续下去。但我的业余项目和个人业务创收上将会使用其它的语言和框架。
此外,PHP并不强调好的整洁的编码规范。有很多地方它实际是违背好的编码规范的。结果,你就看到了到处都是大堆的恐怖的PHP程序,跟这些程序打交道简直就是噩梦。新程序员可以通过阅读一些过时的速成教程很快学会这种语言,他们写出的很烂的代码,打包到产品里,这样的水平一年就能挣到6.5万美元。我亲眼看到过这种事情发生。PHP的易用和流行就像吸引苍蝇一样吸引了大量的初级开发人员。
初级的程序员会认为他们把代码格式化一下,加一些注释,他们的代码就整洁了。他们错了,他们格式化的恰恰是些烂代码。我在工作上整天遇到这样的代码。
我作为PHP热爱者的日子结束了。那么,下一步怎么办?
Scala
php100推荐专题:

ccsvchst.exe是一种常见的进程文件,它是SymantecEndpointProtection(SEP)软件的一部分,而SEP则是一款由著名的网络安全公司Symantec开发的终端保护解决方案。作为该软件的一部分,ccsvchst.exe负责管理和监控SEP的相关进程。首先,我们来了解一下SymantecEndpointProtection(

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

双核浏览器是一种集成了两个不同浏览器内核的浏览器软件。内核是浏览器的核心部分,负责渲染网页内容和执行网页脚本等功能。传统浏览器一般只使用单一的内核,如IE浏览器使用Trident内核,Chrome浏览器使用WebKit/Blink内核,火狐浏览器使用Gecko内核等。而双核浏览器则将两个不同内核集成在一个浏览器中,用户可以根据需要自由切换使用。双核浏览器的出


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3汉化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

记事本++7.3.1
好用且免费的代码编辑器

Dreamweaver CS6
视觉化网页开发工具