php5.3/php5.4与之前的版本差异以及(php5.2x/php5.4x性能对比)
1:Function ereg() is deprecated Error 错误对策 Deprecated: Function ereg() is deprecated in …… 解决方法一: 退回去用php5.2。 解决方法二:继续用php5.3,但是修改devel/devel.modul的460行: if ($errno (E_ALL ^ E_NOTICE)) { 改为 if ($errno (
1:Function ereg() is deprecated Error 错误对策
Deprecated: Function ereg() is deprecated in ……
解决方法一: 退回去用php5.2。
解决方法二:继续用php5.3,但是修改devel/devel.modul的460行: if ($errno & (E_ALL ^ E_NOTICE)) { 改为 if ($errno & (E_ALL & ~E_NOTICE & ~E_DEPRECATED)) { 把deprecated错误给忽略掉)
解决方法三:把ereg换成preg_match,ereg_replace也需得换成preg_replace。
只得注意的是 ereg(’^[0-9]‘ 需修改成 preg_match(’/^[0-9]/‘
2: PHP5.3后(set_magic_quotes_runtime(),ereg() )已经关闭
运行php程序出现以下错误
Deprecated: Function set_magic_quotes_runtime() is deprecated
导致这个提示的原因是在PHP5.3后此特性(set_magic_quotes_runtime())已经关闭。
而且在PHP6中已经完全移除此特性。
你可以注释或者删除掉出错的行,或者是在set_magic_quotes_runtime()前面加@符号。
PHP 5.3 ereg() 无法正常使用,提示“Function ereg() is deprecated Error”。问题根源是php中有两种正则表示方法,一个是posix,一个是perl,php6打算废除posix的正则表示方法所以后来就加了个 preg_match。此问题解决办法很简单,在ereg前加个过滤提示信息符号即可:把ereg()变成@ereg()。这样屏蔽了提示信息,但根本问 题还是没有解决,php在5.2版本以前ereg都使用正常,在5.3以后,就要用preg_match来代替ereg。所以就需要变成这样,原来:
ereg("^[0-9]*$",$page)
变成:
preg_match("/^[0-9]*$/",$page)
特别提醒:posix与perl的很明显的表达区别就是是否加斜杠,所以与ereg相比,后者在正则的前后分别增加了两个”/”符号,不能缺少。
Tips:此问题在php5.2之前版本不会出现。
Function ereg() is deprecated in drupal-6.15\includes\file.inc on line 904
open the file.inc in a good text editor other than notepad, go to the line number 904 to see the following line. Then comment the line and in the next line type the replaced code. this will solve the instalation issues and also most of other issues related
to the same issue.
Change
elseif ($depth >= $min_depth && ereg($mask, $file)) {
to
elseif ($depth >= $min_depth && mb_ereg($mask, $file)) {
mb_ereg fortunatly is not deprecated
PHP 5.4发布了,兄弟说他代码报错了:
“Call-time pass-by-reference has been removed ”
你准备升级到 PHP 5.4了吗?
大蛇这就来八一八新版本的差异。以下排序依照对开发影响的大小。
========================================================
“Call-time pass-by-reference has been removed ”
调用时引用传递已被废弃。
当我们这样使用函数(或者类)的话,会产生一个error:
foo(& $var);
实际上,这样用本来就是错的,只是之前的错误级别仅仅是Deprecated而已。
而正确的使用方法应该是在函数定义时:
function foo(& $var) {
}
而在调用时直接传参就行了: foo($var);
========================================================
时区(timezone)必须设置
如果没有通过在配置文件中配置date.timezone 或者代码中通过 date_default_timezone_set()的方式来设定时区的话,以前会进行一些推算,而5.4以后则会删除这个特性。取而代之的是使用“UTC”时间。(点击查看什么是“UTF时间”)
========================================================
E_ALL现在包含E_STRICT
众所周知E_STRICT是不包含在E_ALL里面的,所以我们才会有E_ALL & E_STRICT这种写法。
而到了PHP 5.4中,E_ALL将包括E_STRICT。
========================================================
register_globals被移除
相信很多的PHP都对register_globals深恶痛绝,而register_globals也被认为是万恶之首,早在4.2的时候,register_globals就默认关闭了,而到了5.4就把register_long_arrays和register_globals移除了。One Less Thing to Worry About。
========================================================
默认字符集变成UTF-8
配置文件中的default_charset由原来的ISO-8859-1变成UTF-8。
========================================================
session_is_registered(), session_register() 和 session_unregister() 函数被移除.
这些函数在PHP 5.3中已经被废弃,如果要使用,可以直接对$_SESSION变量用isset(),unset()这样的方式。这些方法被移除后,如果使用会导致error。
========================================================
magic_quotes_gpc和相关的所有函数、ini中的设置
被移除的有配置中的magic_quotes_gpc, magic_quotes_runtime 和 magic_quotes_sybase。而get_magic_quotes_gpc, get_magic_quotes_runtime 虽然被保留了,但是始终会返回 false, set_magic_quotes_runtime 会产生E_CORE_ERROR错误。
========================================================
EXT/SQLITE扩展被移除
别太惊讶了,这次被移除的扩展仅仅是ext/sqlite, 而ext/sqlite3 以及 ext/pdo_sqlite并没有被移除。
以上便是这次新版本值得注意的地方,下面这里有完整版,不过是随时在变的,可能你在看这边文章点过去并非一开始就是本文所属的这些修改。
http://php.net/ChangeLog-5.php
php5.2X与php5.4x性能对比:
硬件环境:
服务器:DL180G6 (16 Intel(R) Xeon(R)CPU E5620 @2.40GHz) 16G内存
压力机:DL180G6 (16 Intel(R) Xeon(R)CPU E5620 @2.40GHz) 16G内存
软件环境:
nginx1.2.5php5.4.9/5.2.16 XCache3.0.0 最大600php-fpm
网络环境:千兆
测试场景:
php 设置两种不同版本,在相同硬件和网络环境,压力配置情况下,并发相同用户数向服务器发送请求。对比服务器资源占用和事物处理能力。
测试结果:
并发用户 |
CPU(us+sy) |
Load average |
Response time(s) |
QPS/s |
20 |
46% |
9.2 |
0.022 |
950 |
40 |
49% |
13.4 |
0.032 |
890 |
60 |
52% |
22.8 |
0.043 |
860 |
80 |
54% |
28.3 |
0.055 |
840 |
100 |
55% |
42.1 |
0.064 |
820 |
并发用户 |
CPU(us+sy) |
Load average |
Response time(s) |
QPS/s |
20 |
48% |
8.7 |
0.018 |
1100 |
40 |
50% |
14.6 |
0.026 |
1050 |
60 |
54% |
21.3 |
0.036 |
1010 |
80 |
56% |
26.3 |
0.046 |
998 |
100 |
57% |
34.7 |
0.054 |
1020 |

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Numpy是Python中一個重要的數學庫,它提供了高效的數組操作和科學計算函數,被廣泛應用於數據分析、機器學習、深度學習等領域。在使用numpy過程中,我們經常需要查看numpy的版本號,以便確定目前環境所支援的功能。本文將介紹如何快速查看numpy版本,並提供具體的程式碼範例。方法一:使用numpy自帶的__version__屬性numpy模組自帶一個__

查看maven版本的方法:1、使用命令列;2、檢視環境變數;3、使用IDE;4、檢視pom.xml檔。詳細介紹:1、使用命令列,在命令列中輸入"mvn -v"或"mvn --version",然後按回車,這將顯示Maven的版本資訊以及Java的版本資訊;2、查看環境變量,在某些系統上,可以查看環境變數來找到Maven的版本信息,在命令列中輸入命令,然後回車等等。

在Linux下更新curl版本,您可以按照以下步驟進行操作:檢查目前curl版本:首先,您需要確定目前系統中安裝的curl版本。開啟終端,並執行以下指令:curl--version該指令將顯示目前curl的版本資訊。確認可用的curl版本:在更新curl之前,您需要確定可用的最新版本。您可以造訪curl的官方網站(curl.haxx.se)或相關的軟體來源,尋找最新版本的curl。下載curl原始碼:使用curl或瀏覽器,下載您選擇的curl版本的原始碼檔案(通常為.tar.gz或.tar.bz2

關於Llama3,又有測試結果新鮮出爐-大模型評測社群LMSYS發布了一份大模型排行榜單,Llama3位列第五,英文單項與GPT-4並列第一。圖片不同於其他Benchmark,這份榜單的依據是模型一對一battle,由全網測評者自行命題並評分。最終,Llama3取得了榜單中的第五名,排在前面的是GPT-4的三個不同版本,以及Claude3超大杯Opus。而在英文單項榜單中,Llama3反超了Claude,與GPT-4打成了平手。對於這一結果,Meta的首席科學家LeCun十分高興,轉發了推文並

如何輕鬆查看Oracle的安裝版本,需要具體程式碼範例作為一款被廣泛應用於企業級資料庫管理系統的軟體,Oracle資料庫具有許多版本和不同的安裝方式。在日常工作中,我們經常需要查看Oracle資料庫的安裝版本,以便進行相應的操作和維護。本文將介紹如何輕鬆查看Oracle的安裝版本,並給出具體的程式碼範例。方法一:透過SQL查詢在Oracle資料庫中,我們可以通

查看麒麟作業系統版本和核心版本在麒麟作業系統中,了解如何檢視系統版本和核心版本是進行系統管理和維護的基礎。查看麒麟作業系統版本方法一:使用/etc/.kyinfo檔案要查看麒麟作業系統的版本,您可以檢視/etc/.kyinfo檔案。此檔案包含了作業系統的版本資訊。執行以下指令:cat/etc/.kyinfo此指令將顯示作業系統的詳細版本資訊。方法二:使用/etc/issue檔案另一個檢視作業系統版本的方法是透過檢視/etc/issue檔案。這個文件同樣提供了版本信息,但可能不如.kyinfo文件

一分鐘搞定:如何更新pip版本,需要具體程式碼範例隨著Python的快速發展,pip成為了Python套件管理的標準工具。然而,隨著時間的推移,pip版本也不斷更新,為了能夠使用最新的功能和修復可能的安全漏洞,更新pip版本是非常重要的。本文將介紹如何在一分鐘內快速更新pip,並提供具體的程式碼範例。首先,我們需要打開命令列視窗。在Windows系統中,可以使用

DP介面是電腦裡面重要的介面線,有很多使用者在使用電腦的時候,想要知道怎麼樣可以查看DP介面是1.2還是1.4的,其實只需要在GPU-Z中就可以看。 dp介面怎麼看1.2還是1.4:1、先在GPU-Z中選擇「Advanced」。 2.再看“Advanced”下面“General”中的“Monitor1”,可以看“LinkRate(current)”和“Lanes(current)”這兩項。 3.最後如果顯示8.1Gbps×4,就是DP1.3版本以上,一般都是DP1.4,如果是5.4Gbps×4,則
