怎么判断php版本,NETPHPJSP四种语言的特点及区别是什么?
ASP,全称为Active Server Pages
ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。目前在微软的 .Net 战略中新推出的ASP.net 借鉴了Java技术的优点,使用C Sharp (C#) 语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的 Windows NT/2000/XP + IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案,但是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
PHP,全称为PHP: Hypertext Preprocessor
PHP 的全名非常有趣,它是一个巢状的缩写名称——“PHP: Hypertext Preprocessor”,打开缩写还是缩写。PHP是一种HTML 内嵌式的语言 (就像上面讲的ASP那样)。而 PHP 独特的语法混合了C,Java,Perl以及 PHP 式的新语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。
PHP的源代码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1 ,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统 CGI 或者 ASP 等技术有了更好的表现。
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话, 使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
JSP,全称为Java Server Pages / Servlet
JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java 2 platform Enterprise Edition)应用体系中的一部分。
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process),而Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(Parent Thread)来实现资源共享,这样就减轻了服务器的负担,所以,Java Servlet可以用来做大规模的应用服务。
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。但是,它的执行方式和ASP或PHP完全不同。在JSP被执行的时候,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后Servlet代码被Java编译器编译成 .class 字节文件,这样就由生成的Servlet来对客户端应答。所以,JSP可以看做是Servlet的脚本语言(Script Language)版。
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。因此,JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数,而是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错),逐步缩小出错代码段的范围,最终确定错误代码的位置。
JSP和ASP相比较:
运行速度、运行开销、运行平台、扩展性、安全性、函数支持、厂商支持、对XML的支持等等,ASP都不是JSP的对手。COM组件的复杂性实编程实现有一定的难度。而JAVABeans和JAVA的结合却是天衣无缝的。
JSP和ASP.NET相比较:
1.相对C#,JSP的脚本语言JAVA也是面向对象的、分布式的、解释的语言。
2.与C#相似JAVA同样去掉了难以理解的指针等概念,取而代之的是类和对象。
3. JSP有一项全新的技术――Servlet(服务器端程序)很好的节约了服务器资源。
4.JAVABeans是针对ASP.NET的Server Control的技术。只要会JAVA, JavaBeans就很容易写出。
5.再有就是JAVA的JDBC数据库连接技术。
6.JSP对XML同样有十分广泛的支持。
1) 面向对象性:
ASP+将C#作为一种面向对象语言,在很多方面来看,C#将成为微软的与Java相似的语言。
C#另一个有趣的地方是所有对象都自动变成为COM对象。如果C#能取得很大的市场份额,那么它将给ASP+带来类似于Java的功能,并且具备更快的性能,因为它可以和Windows环境紧密集成。
C# 是ASP+开发中一个最重要的功能,微软会将C#发展成为Java的强劲对手。这也是他们.Net框架的一个重要组成部分。我认为C#是微软在编程市场上击败对手的主要工具。我期待着微软能在这个产品后面倾注全力,这样,C#可以成为许多程序员的又一种选择。C#产生的结果是将进一步加固微软和Sun产品的战线。这对用户是有利的,他们可以选择两者之一来开发新的应用。
2) 数据库连接:
ASP另一个亮点是它使用ADO对象,ODBC, OLE-DB和事务处理管理器。因此ASP Web数据库应用开发特别简单。ASP+发展了更多的功能,因为有了ADO+!ADO+带来了更强大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,当新版本ASP+/ADO+出现后这样的差别会更明显。我个人希望SUN应尽快能花大力气来追赶ASP+/ADO+的组合。
3) 大型站点应用:
ASP+将对大型站点(web farms)有更好的支持。事实上,微软在这方面付出了巨大的努力。 ASP+可以让你考虑到多服务器(multiple servers)的场合,当你需要更强大的功能时,仅仅只需要增加一台服务器。整个.Net框架已经充分地提供了这个方法。ASP+提供了外部会话状态(external session state)来提供内置式web farm的支持。另外,由于请求的各组件相互间经过了充分的优化,所以速度很快。
于是ASP+现在可以在大型项目方面与JSP一样具有等同的能力。 而ASP+还有价格方面的优势,因为所有的组件将是服务器操作系统的一部分。对于JSP,你需要购买昂贵的应用服务器群来达到同样的目的。
4) ASP+还提供更多的其它方面的新特性,例如:
*内置的对象缓存和页面结果缓存。
*内置的XML支持,可用于XML数据集的简单处理。
*服务器控制提供了更充分的交互式控制。
ASP+确实对ASP进行了较大的发展。
phpMyAdmin?
phpMyAdmin 5.0.0版本于今天正式发布。该版本同4.9.3版本同时存在,不过官方推荐没有安装旧版PHP的用户尽量使用5.0.0版本。本次5.0版本更新中在涵盖了4.9分支的大量改进之外,还引入了诸多新功能。
团队表示也希望为那些运行旧版PHP的用户尽量维护phpMyAdmin 4分支,有关受支持的版本和寿命终止日期的完整详细信息,请参阅https://www.phpmyadmin.net/downloads/上的“受支持的版本”一栏。phpMyAdmin 5.0.0版本移除了对旧版PHP版本(5.5、5.6、7.0和HHVM)的支持,这些旧版本已经不再得到PHP团队的支持。
phpMyAdmin 5.0.0版本对用户界面进行了诸多现代化改进,在更加透明的同时让代码维护变得更加轻松。改进的部分功能包括:
● 默认情况下启用CSV导出的列名称
● 添加Metro主题
● 创建自动递增列时自动添加索引
● 改进了导出视图
● 在没有WHERE子句的UPDATE查询之前,提示用户进行确认
● 改进了向用户显示错误的方式(包括允许更轻松地将错误文本复制到剪贴板)
● 添加了击键以清除行(ctrl + l)并清除整个控制台窗口(ctrl + u)
● 导出格式为MS Excel时使用字符集“ windows-1252”
已知的问题
由于MySQL对身份验证方法的更改,7.4之前的PHP版本无法向MySQL 8.0或更高版本的服务器进行身份验证(我们的测试表明,问题实际上始于MySQL 8.0.11)。这与PHP错误https://bugs.php.net/bug.php?id=76243有关。
临时解决方法就是,将您的用户帐户设置mysql_native_password为使用当前样式的密码哈希方式。不幸的是,这种缺乏协调的行为导致了所有PHP应用程序的不兼容性,受影响的不仅仅是phpMyAdmin。有关更多详细信息,您可以在https://github.com/phpmyadmin/phpmyadmin/issues/14220上查看我们的错误跟踪器项。
用户可以通过https://phpmyadmin.net/downloads/下载。
现在学php还晚吗?
PHP开源官方团队解散,PHP真的要完了?我只能告诉你的是,PHP依然是世界上最好的语言(尽管我主要用C、Java和Python)。
今年一则关于PHP灵魂人物离职的新闻震惊了不少人, PHP核心开发者之一鸟哥惠新辰也回应了这个问题,大家不要以讹传讹、更不要危言耸听,尽管会有一些影响,不过用鸟哥的话说就是“一切都是安排好的”。
谣言止于智者,Zeev Suraski不在PHP一线开发很多年Zeev Suraski是一名以色列程序员,他跟Andi Gutmans一起发展了Rasmus Lerdorf创建的PHP编程语言,他们还重写了PHP-FI,这也就是我们熟知的PHP3这个版本,接着他们又重写了PHP解释器、他们把这个叫做Zend引擎,后来他们在这基础上创建了Zend公司,Zend公司就自然而然成了PHP的领军者,极大地推动了PHP的发展。
不过大佬早在2006年之前就不在一线写代码了,更多的是作为项目的管理者存在,而PHP目前的几位核心开发者,也包括了PHP三大核心开发者之一的鸟哥在内的几个真正现在的灵魂人物,依然在提交代码,大家完全不用担心。
大佬离职的原因是Rogue Wave公司收购了Zend公司之后,更加注重Zend Server等商业开品的研发,把美国之外的开发者统一安排到爱沙尼亚工作,可是Zend公司创始人、也是CTO、也是我们之前说的大佬Zeev Suraski是以色列人,团队里面的Dmitry Stogov是俄罗斯人,他们很难接受去一个陌生的国家工作,这才决定了要离职的。
不过Zeev Suraski团队的Dmitry Stogov在跟鸟哥的谈话过程中明确的强调了离职以后,会去寻找新的赞助商来推进PHP项目的研发,PHP的几个核心开发者都是有工资的。不过大家也不用担心,PHP本来也都是社区驱动的开源项目,而这里面的几位大神即使没有了这份薪水,也不会担心没有饭吃。就拿鸟哥来说,从百度到微博,再到链家、贝壳,鸟哥一直是企业高管,工资不低、股票也不会少,因此大家完全不用担心没了这份薪水,人家就完全不干活了。
PHP是最好的语言,尽管我真的不用PHP说得夸张一点的话,PHP就是为互联网而生的编程语言,尽管现在Python和Go语言似乎又有点强势,Java搞来了微服务以后,更是气势汹汹要拿回曾经失去的市场份额,可是PHP还是有一些自己的优势的。
PHP是为Web而生的,非常适合快速开发,而且语法也非常简单,尤其是开始一个新项目,就是这个脚本语言人家能做得一手好的面向对象开发,安装以后mysql、json等众多扩展都好了,还能跟HTML进行混合编程,还包含了webserver,框架层面也有Laravel、zf等众多选择的余地,尽管比不上Java那么疯狂吧,可是也是足够用了,这玩意儿天生就是用来做业务开发的,假设用户体量上来了,你还是可以用它,因为做底层的事情交给C/C++就好了,PHP虽然不像Python那般胶水,可是跟C语言一直相处很好的,你还是可以专注于写业务。
PHP不会死掉,这样的一门出色的编程语言,目前他还有比较出彩的优势是其他语言暂时没办法替代的,开源编程语言也有足够的社区支持,全球有非常多的出色的开发者愿意为开源项目做贡献。Facebook、腾讯、微博、百度等等企业都是Facebook大户,他们也愿意为PHP语言的发展花钱花精力。
本文为字节跳动签约作者EmacserVimer悟空问答原创文章,未经允许转载、抄袭必究!并且提示ThinkPHP的版本信息?
你打开tp的debug模式就能看到程序报错了,tp5默认是关闭debug模式的,在模块config里改。记住,不要动系统config!
ZendSutdio是什么?
如果将 php 5.2 升级到5.3;同时也需要把 Zend Optimizer 升级成 Zend Guard;因为 Zend Optimizer 最高只支持 php5.2;Zend Guard 同 Zend Optimizer 没有本质的区别,只是支持的 php 版本不同。使用 Zend 加密的程序照常运行,比如 Shopex;但是有个别使用 Zend 加密的程序必须使用 Zend Optimizer,比如 phpweb ;(也有可能是 phpweb 依赖于 php 5.2,不兼容 php 5.3)