4一個可提升腳本效能上的PHP技巧上的程式碼來解決PHP技巧。但是對於其中的一些問題,我遇到了一些替代解決方案,這些解決方案特別提高了效能。
推薦:《PHP影片教學
》在本文中,我想介紹一些替代方案。如果您正在尋找可能減少生產中執行時間的可能性,這將很有用。讓我們來看看,哪種PHP方法可能會被效能更高的方法所取代,以及是否有成本或折衷的問題。
1.刪除重複項您有一個包含重複項的大型數組,並且希望刪除它們,使其僅具有唯一值的數組。
常規array_unique($array);
替代array_keys(array_flip($array));
表現我創建了一個數組,其中包含超過400萬個元素和300萬個重複項。這是最佳結果:
787.31毫秒
|
array_keys |
434.03毫秒
|
替代方法在此測量中快 |
用值替換了鍵。
2.取得隨機數組記錄
您有一個很大的數組,想要從中選擇一個隨機值。
常規
array_rand($array);
替代
$array[mt_rand(0, count($array) - 1)];
表現
我創建了一個包含500萬個元素的陣列。這是最佳結果:
方法
|
#mt_rand |
| 替代方法是此測量速度快27.3倍 | (96.33%)。平均而言,速度提高了約8倍(87%)。這個結果特別令人驚訝,因為
3.測試字母數字字元
您有一個字串,要測試,如果它只包含字母數字字元。
常規
preg_match('/^[a-zA-Z0-9]+$/', $string);
替代ctype_alnum($string);
表現我創建了一個包含100k以上字母數字和非字母數字字串的陣列。這是最佳結果:
方法執行時間處理時間
##preg_match | ||||||
---|---|---|---|---|---|---|
ctype_alnum |
2.06毫秒 | |||||
#<p>在此测量中,替代方法快了<strong>7.5倍</strong>(86.59%)。平均而言,速度提高了约4倍(76%)。可以将相同的内容应用于<code>ctype_alpha() (检查字母字符)和ctype_digit() (检查数字字符)。4.替换子字符串您有一个字符串,想要用另一个子字符串替换它的一部分。 常规str_replace('a', 'b', $string); 替代strtr($string, 'a', 'b'); 表现我创建了一个包含500万个随机字符串的数组。这是最佳结果:
另一种方法是2.2倍(54.83%)在该测量更快。平均而言,速度提高了约2倍(51%)。 其他性能改进这是我整合到我的编码约定中的一些其他要点,发现它们可以稍微改善性能(如果适用):
最后几句话:我知道有关过早优化的讨论。我同意生产中的性能取决于瓶颈,例如数据库查询,在处理性能时应重点关注。但是我认为,如果有更快的替代方法,例如在正则表达式更易于处理和维护的情况下,为什么不使用它们呢? 最后我们已经看到,即使使用当前的PHP 7.4(已经比以前的PHP版本快很多),也可以通过其他方法来提高脚本性能。如果您想亲自验证本文中提供的数据,我创建了一个包含所有测试的存储库:
我使用了Bart van Hoekelen的出色工具来衡量执行时间。 转载自:Andreas |
以上是分享4個提升腳本效能的PHP技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

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

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器