设为首页 收藏本站
查看: 551|回复: 0

[经验分享] php版本之殇

[复制链接]

尚未签到

发表于 2018-12-15 11:04:54 | 显示全部楼层 |阅读模式
  苦心学习Php有一段时间了,仍然停留在入门初级阶段,仍然写不出自己的作品来,就算照着别人的现成的教材,一字不落的写在板板上,仍然会有层出不穷的错误,揪其因果,实乃版本之故。有位大虾,曾写下如下博文:
PHP5.3开始加入了一个新的报错级别DEPRECATED,即将废弃/过期。
php5.3被放弃的函数有:
call_user_method() //使用 call_user_func() 替代
call_user_method_array() //
使用call_user_func_array() 替代
define_syslog_variables()
dl()
ereg() //
使用 preg_match() 替代
ereg_replace() //
使用 preg_replace() 替代
eregi() //
使用 preg_match() 配合 'i' 修正符替代
eregi_replace() //
使用 preg_replace() 配合 'i' 修正符替代
set_magic_quotes_runtime() //
以及它的别名函数magic_quotes_runtime()
session_register() //
使用 $_SESSION 超全部变量替代
session_unregister() //
使用 $_SESSION 超全部变量替代
session_is_registered() //
使用 $_SESSION 超全部变量替代
set_socket_blocking() //
使用stream_set_blocking() 替代
split() //
使用 preg_split() 替代
spliti() //
使用 preg_split() 配合 'i' 修正符替代
sql_regcase()
mysql_db_query() //使用 mysql_select_db() mysql_query() 替代
mysql_escape_string() //
使用mysql_real_escape_string() 替代
mysql_close(); //
将不支持全部关闭, 需要改为:mysql_close($link);
废弃以字符串传递区域设置名称. 使用 LC_* 系列常量替代.
mktime()
is_dst 参数. 使用新的时区处理函数替代.
PHP 5.4

mcrypt_generic_end()
mysql_list_dbs()
PHP 5.5

mcrypt_cbc()
mcrypt_cfb()
mcrypt_ecb()
mcrypt_ofb()

其中,PHP 5.3是废弃函数的开始,很多常用的以前的正则ereg全部替换preg,但是魔术引号。居然也从PHP 5.3开始弃用,PHP 5.4就移除了。这个算是PHP 5.3的一个大变动吧。
PHP 5.4
开始新增了很多特性,新增很多特殊写法。(www.jbxue.com
脚本学堂)
  至于PHP 5.5,居然把MYSQL这个扩展去掉了,建议使用MYSQLI或者PDO
用了5.5很多程序都会报错,提示mysql_connect即将过期!!会看到如下错误:
Deprecated: mysql_connect(): The mysql extension is deprecated and will beremoved in the future: use mysqli or PDO instead in E:testnew 6.php on line 6
PHP5
相对于4的跨进最大的就是类的部分,而影响更多的就是废弃这些老习惯的东西吧。
虽然版本一直在升级,但是终究市场上还是大量的5.1.6-5.2.175.3开始废弃很多特性,这就导致了很多程序也不敢直接上,5.5.直接秒杀了大量的开源产品!

  

  现如今,能够在开源市场找到最新版的教程,屈指可数,或者根本没有,只能在旧版的教程基础之上勤加练习。昨天一段很简单的连接数据库操作的代码愣是把我搞得稀里哗啦的。代码如下:

  
  好吧,够简单了吧,一目了然,无非就是要在数据库里面把数据以数组的形式取出并打印出来。可是,就这么简单的代码,在高于php 5.3版上一运行,出错了,报的错误搞的人晕头转向,虽然描述得很清楚,但却没有给出解决的方法。如下图所示:
  

DSC0000.gif

  将:mysql_connect()改为:mysqli_connect(),结果呵呵了:

  你这错误,比我代码的行数还多,叫我情何以堪!
  明明知道这个是PHP版本的问题导致的,可是如果是几千行,几万行的代码,因为版本的升级就死光光了,想想实在是令人恐怖的一件事。所以,那些在5.3版以前开发的网站或者管理系统,要升级的话,千万要三思后行了。其实,这段代码是没有问题的,下图是在windows server 2003系统上的WEB环境:

  将代码中的数据库和表改动一下,运行的话是没有任何报错信息的,除了编码问题导致乱码外:
  
  运行结果:

  处于菜鸟的心态,希望有大虾看到这篇小文章能够给予指点一二。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-651635-1-1.html 上篇帖子: PHP教程:详解PHP归并排序的实现 下篇帖子: php5.5安装及phpmyadmin&nginx配置php模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表