首頁 後端開發 php教程 php調試工具Xdebug詳細使用教學課程

php調試工具Xdebug詳細使用教學課程

Mar 16, 2018 am 11:08 AM
php xdebug 使用

xdebug是一個php擴展,官方地址:https://xdebug.org/index.php,用於幫助開發者調試程式碼,本文主要和大家分享php調試工具Xdebug詳細使用教程,最新的2.6版本為列來講解,希望能幫助大家。

它具備這些功能:

取代php的錯誤提示:

在提示中加入配色以強調不同資訊
大變數列印:
增強var_dump ()、print_r()等列印函數的功能,在大變數列印時很有用,避免當機
最大遞迴保護:
可以設定最大遞迴次數限制,防止php卡死
函數呼叫追蹤:
能追蹤函數呼叫過程,顯示傳入和傳回的值,記憶體用量等
程式碼覆蓋分析:
可以找出程式碼運行時哪些行被執行了
垃圾回收分析:
在php執行垃圾回收時顯示哪些變數被清理、多少記憶體被釋放等資訊
程式碼效能分析:
可以看出程式碼各部分的執行時間,找出程式碼運作效率的瓶頸
遠端偵錯:

配合IDE工具進行遠端斷點偵錯,讓你一步步追蹤程式碼的執行,檢視或設定執行中的各變數值,避免使用var_dump()、print_r()等函數,這也是xdebug最常被使用的功能,非常強大。

安裝:
這裡以以下環境來說明,其他環境請依照提示操作:
作業系統:Windows 10
php版本:php-7.1.13-nts(32 bit)
下載:https://xdebug.org/download.php
請依照自己的環境(php版本、是否執行緒安全、位元寬等)選擇適合的版本,這裡筆者依據前文環境選擇:
版本: Xdebug 2.6.0,PHP 7.1 VC14 (32 bit)  此版本在2018-01-29發布
將下載得到的檔案php_xdebug-2.6.0-7.1-vc14-nts.dll放入php的ext目錄中
修改php.ini文件,加入以下配置:
zend_extension="php_xdebug-2.6.0-7.1-vc14-nts.dll"
執行phpinfo(),如果已經顯示了xdebug擴充功能則說明安裝成功,如果沒有請檢測是否選對了版本
安裝完成後要進行實際的使用還需要根據你的目的在php.ini文件中進行特定的配置,以下根據各功能,進行常用說明

開啟Xdebug方式的錯誤提示:
只要啟用了xdebug擴充那麼該功能是預設開啟的,將以xdebug的風格進行錯誤顯示,如果想以原php的風格顯示可以在設定檔中設定:xdebug .default_enable=0,注意該設定項並不是指關閉xdebug的所有功能

配置大變數的顯示:
在有些程式中變數會很大,例如著名內容管理系統drupal8中的節點渲染數組,如果直接print_r那麼可以將記憶體8G的I5電腦卡死,所以Xdebug提供了配置大變數列印配置以避免這種情況,配置以下配置項:
xdebug.var_display_max_children
整數,預設128 ,顯示的數組子元素或物件屬性的最大數量,不限制則設定為-1,遠端偵錯時不受影響
xdebug.var_display_max_data
整數,預設512,顯示字串的最大長度,不限設定為-1,不影響遠端偵錯
xdebug.var_display_max_depth
整數,預設3,顯示陣列或物件屬性時的最大巢狀深度,最大1023,可以用-1指涉這個最大數

最大遞迴保護:
設定以下組態項目:
xdebug.max_nesting_level
整數,預設為:256,不限設定為-1,無限遞迴的保護機制,當遞迴呼叫達到該設定時程式被中斷,注意此時不會出現任何錯誤提示,而是直接退出程式

函數調用追蹤:
包括物件方法調用,該功能預設是關閉的,開啟後將輸出呼叫資料到一個文件,查看文件即可,配置如下(這裡值設定為我們最常用的情況以便複製使用,更多見下文的配置說明):
xdebug.auto_trace=1
;開啟追踪,預設是關閉的
xdebug.trace_output_dir="C:\root\xdebug\trace"
;呼叫追蹤資料輸出目錄
xdebug.trace_output_name="yunke.%s.%u"
;追蹤檔案的檔案名稱
xdebug.collect_params=4
;收集函數參數的形式
xdebug.collect_return=1
;是否收集函數回傳值
xdebug.show_mem_delta=1
;是否收集函數回傳值
xdebug.show_mem_delta= 1
;顯示記憶體詳情
xdebug.trace_format=0
;追蹤文件的格式

以上設定將為所有請求產生分析文件,呼叫追蹤分析還可以採用變數觸發的方式(可透過瀏覽器擴充功能自動完成,這也是建議方法,請見下),也就是在GET/POST 或cookie中設定變數名稱XDEBUG_TRACE,它的值是和下列設定項相符的金鑰,配置如下:
xdebug.auto_trace=0
;開啟變數觸發追蹤時自動追蹤需要關閉
xdebug.trace_enable_trigger=1
xdebug.trace_enable_trigger_value="yunke"
;這就是上述XDEBUG_TRACE變數的值##TRACE變數的值
如存取網址:http://www.test.com/index.php?XDEBUG_TRACE=yunke,即可觸發追蹤檔案的產生
這裡"yunke"是一個金鑰值,只有和設定檔匹配才能產生分析文件,預設為空字元

程式碼覆蓋分析:
該功能可以讓我們知道程式碼執行中哪些行被執行到了,通常用於單元測試,配置如下:
xdebug.coverage_enable =1
;程式碼覆蓋分析開啟

程式碼覆蓋分析是透過在php程式碼中呼叫函數來進行的,過程如下,那將會得到一個陣列結果:
xdebug_start_code_coverage();//開啟覆寫
…//被分析的一些程式碼
var_dump(xdebug_get_code_coverage());//得到一個分析結果陣列

垃圾回收分析:
該功能預設是關閉的,開啟後將輸出垃圾回收分析資料到一個文件,查看文件即可,配置如下(這裡值設定為我們最常用的情況以便複製使用,更多見下文的配置說明):
xdebug.gc_stats_enable =1
;開啟垃圾回收分析
xdebug.gc_stats_output_dir="C:\root\xdebug\gc"
;資料輸出目錄,預設是/tmp

xdebug.gc_stats_output_name=”gcstats.% s.%u”###;輸出檔名,預設是: gcstats.%p###

程式效能分析:
該功能預設是關閉的,開啟後將輸出效能分析資料到一個文件,該文件是便於機器解析的文字格式,需要專用軟體查看,配置如下(這裡值設定為我們最常用的情況以便複製使用,更多見下文的配置說明):
xdebug.profiler_enable=1
;開啟效能分析
xdebug.profiler_output_dir="C:\root\xdebug\profiler "
;效能分析檔輸出目錄
xdebug.profiler_output_name="cachegrind.out.%s.%u"
;效能分析輸出檔名

以上設定將為所有請求產生分析文件,效能分析還可以採用變數觸發的方式(可透過瀏覽器擴充功能自動完成,這也是推薦方法,見下),也就是在GET/POST 或cookie中設定變數名稱XDEBUG_PROFILE,它的值是和以下設定項目匹配的金鑰,配置如下:
xdebug.profiler_enable=0
;開啟變數觸發分析時自動分析需要關閉
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable_trigger_value="yunke"
;這就是上述XDEBUG_PROFILE變數的值
即可觸發分析檔案的產生,例如存取網址:http://www.test.com/index.php?XDEBUG_PROFILE=yunke
這裡"yunke"是一個金鑰值,只有和設定檔匹配才能產生分析文件,預設為空字元

在官網介紹了許多種軟體來查看輸出的分析文件,其中WinCacheGrind在小型程式分析中尚可,大型程式就力不從心了,甚至會出現錯誤,經雲客測試採用QCacheGrind 效果最好,它是KCacheGrind的Windows版本,這裡對該軟體做一個簡單介紹:
打開後左邊有一個“Flat Profile”面板,裡面第一列「Incl.」是執行時間,包含內部呼叫的子程式的時間;Self列是自身消耗的時間,不包含子函數呼叫;Called列是該函數被呼叫的次數;Function是函數名稱; Location列是檔案位置;
時間是以微秒為單位1秒=1000000 微秒(μs),以可以採用百分比的方式

遠端偵錯:
我們先看一下遠端偵錯的整個過程,首先由瀏覽器附帶特殊參數打開要調試的腳本,腳本開始運行,此時Xdebug會主動向配置好的調試客戶端發起一個連接,並採用DBGp協議和調試客戶端交互(調試客戶端往往就是我們使用的IDE,如phpstorm,它需要監聽調試網路連接埠),調試客戶端透過協議讓Xdebug一步一步的執行程式碼,顯示或設定程式中的變數內容,在每一步之間Xdebug將php程式掛起暫停執行,這個「步」又叫斷點,調試客戶端可以透過設定斷點來讓程式在該處暫停,對於調試客戶端而言這又叫做斷點調試,整個過程而言是Xdebug在php引擎裡一步一步的執行程式碼並操作這個過程,她接收調試客戶端的指令。
要進行遠端偵錯具體操作如下,首先需要以下配置並重新啟動php:
xdebug.remote_enable=1
;遠端偵錯開關
xdebug.remote_host=localhost
;遠端偵錯客戶端主機位址,也就是IDE所在主機的位址,往往就是localhost
xdebug.remote_port=9000
;遠端偵錯連接埠
配置好後,我們在瀏覽器中開啟腳本,開啟時需要發送GET/ POST變數名稱XDEBUG_SESSION_START或cookie變數名稱XDEBUG_SESSION,其值為Xdebug和除錯客戶端的通訊會話id,往往是ide指定的一個特殊字符,如phpstorm指定為“PHPSTORM”,該值可以在xdebug.idekey配置中設定,預設為空字串;瀏覽器附加的參數可以透過瀏覽器擴充功能自動完成(見下);伺服器收到請求後依據xdebug.remote_mode配置項目的設定開始調試過程,該配置項如果是“req”那麼腳本剛啟動時Xdebug就向調試客戶端(IDE)發起調試連接,這也是默認值,如果是“jit”那麼僅在有錯誤出現時才發起連接,一旦和IDE的連接建立成功那麼就採用DBGp協議進行調試交互。
如果伺服器是被多個開發者共享的,那麼調試客戶機會有多個,而xdebug.remote_host配置項只能設定一個,此時可以將xdebug.remote_connect_back設定為1,那將採用從http頭中取得的ip來作為調試客戶機的位址。
Xdebug在發起調試連接時預設逾時時間為200毫秒,該值在xdebug.remote_timeout配置項中設置,在本機調試該值足夠了,如果是遠端的網絡主機那麼需要加大該值以應對網路延遲。


瀏覽器外掛輔助:
如前文所述,觸發方式產生分析、追蹤檔案和開啟遠端偵錯都需要在GET/POST 或cookie裡面設定特定變數和值,那麼我們能否讓瀏覽器代勞呢,這是可以的,這裡以開發者使用最多的火狐瀏覽器為列來說明:
先安裝輔助插件,打開地址:https://addons.mozilla.org/en -GB/firefox/addon/xdebug-helper-for-firefox/
你會看到Xdebug Helper for Firefox ,點擊Add to Firefox,按照提示操作即可
安裝完成後需要進行設定:按組合鍵「ctrl+shift+a」開啟附加元件面板,找到Xdebug Helper,點選選項,分別輸入IDE遠端會話id、分析金鑰、追蹤金鑰(對應設定中xdebug.idekey 、xdebug.profiler_enable_trigger_value、xdebug.trace_enable_trigger_value),點擊儲存,此時新開網頁的瀏覽器網址列中將出現一個爬蟲圖標,可以選擇四種狀態:調試、分析、追蹤、停用,前三種種狀態下瀏覽器開啟連線時會附帶額外的cookie參數,例如我們選擇分析,那麼刷新連線時會在cookie中加入XDEBUG_PROFILE變量,值為前文設定的金鑰值,這將讓Xdebug產生分析文件,函數追蹤和遠端調試同理。

phpstorm調試:
前文說了Xdebug的遠端調試是她透過DBGp協定和調試客戶端互動的過程,遠端調試客戶端需要監聽網路連接埠以接收Xdebug發起的調試連接,這裡以PhpStorm作為遠端偵錯客戶端來講解具體操作。
PhpStorm是開發者常用ide,這裡採用2017.2.4版本,以著名內容管理系統drupal8來說明調試過程,首先你需要安裝配置好Xdebug,主機選擇:localhost,端口選擇預設的9000,火狐瀏覽器安裝了前一節提到的Xdebug Helper for Firefox擴展,然後開啟PhpStorm建立的drupal專案(還不知道如何建立專案?請百度或drupal官網),開啟:file > Default Settings > Languages &Frameworks > PHP; > Debug > Xdebug
連接埠設定為9000,其他設定項目視你狀況選擇,點選Apply和OK
開啟偵錯設定面板(Run > Edit Configurations),點選左上角加號選擇PHP Web Application,輸入調試名稱(隨意),這裡輸入drupal,點擊Server一行的三個點號,打開伺服器配置面板,輸入伺服器名稱,url地址和端口,調試器選擇Xdebug,路徑映射不用勾選,點擊應用ok ,回到前一個面板,Start URL 輸入“/”,瀏覽器選擇安裝了Xdebug Helper for Firefox擴充功能的火狐,應用OK,
此時phpstorm介面右上角調試按鈕一行的下拉選單自動選擇了剛剛建立的調試“drupal”,點擊電話圖標(圖標聽筒變為在聽狀態)或點擊菜單Run | Start listen for PHP Debug Connections開始監聽9000端口,在index文件中設置一個斷點(點擊代碼行號左側的空白,出現紅色圓點),好了一切準備就緒,下面打開火狐瀏覽器,將地址欄爬蟲圖標選擇為“debug”,打開一個drupal頁面,此時phpstrom將打開左下角的調試面板,該面板提供了許多按鈕以供你操作程式碼執行:變數子麵板列出了目前作用域所有的變量,在這裡你可以查看所有的變數內容;Watches面板可以追蹤變數或表達式的內容;Frames面板列出目前行所在的呼叫堆疊幀。
如何使用phpstorm進行調試請查看官方文檔,不再細述,這裡提供一些phpstorm官網提供的調幫助文檔頁:
安裝配置:
https://confluence.jetbrains.com/display /PhpStorm/Zero-configuration+Web+Application+Debugging+with+Xdebug+and+PhpStorm
調試操作:
https://confluence.jetbrains.com/display/PhpStorm/Using+the+PhpStorm+Degerger

注意調試開始後將停留在第一個斷點所在位置,如果你一個斷點也沒有設置,那麼調試會話將立即結束,你也可以設置調試停留在第一行程式碼上(選擇Run > Break at first line in PHP scripts)。
如果偵錯過程中瀏覽器出現500錯誤,且偵錯連線斷開,很可能是伺服器將php程式終止了,如果你是FastCGI 方式運行的Apache,錯誤日誌類似為“End of script output before headers” ,請設定伺服器設定檔httpd.conf中的FcgidIOTimeout、IPCCommTimeout 參數為你希望的等待時間,單位為秒,其他環境請自行檢查逾時設定。


常用配置:
全部設定及詳細見:https://xdebug.org/docs/all_settings,本文只進行大概介紹
xdebug.trace_output_dir
函數呼叫跟踪資料檔案的寫入目錄,預設為/tmp,確保可寫入
xdebug.trace_output_name
追蹤檔案的檔案名稱指引,預設為:trace.%c  例如:yunke.%s.%u 將輸出帶路徑的腳步名及帶微妙的時間,如下:yunke.C__root_test_index_php.1520473784_260486.xt
xdebug.auto_trace
開啟函數呼叫追踪,布林值,預設為0
xdebug.collect_trace
開啟函數呼叫追蹤,布林值,預設為0
xdebug.collect_assignments## ,預設為0,是否在函數追蹤中加入變數賦值
xdebug.collect_includes
布林值,預設為1,是否將include(), include_once(), require() or require_once() 的檔案寫入追蹤檔案
xdebug.collect_params###整數,預設0,決定函數追蹤的參數收集,0為不收集,1參數的類型和數量,2在1基礎上加工具提示訊息,3全變量內容(受到變數輸出設定的影響),4全變量內容和變數名,5php序列化內容沒有變數名
xdebug.collect_return
布林值,預設0,是否寫入函數呼叫的回傳值到追蹤檔案
xdebug.show_mem_delta
整數,預設為0,非0值將顯示函數呼叫的記憶體用量資訊
xdebug.trace_format
整數型,預設0,追蹤檔案的格式,0為人類可讀格式(時間索引,記憶體用量等等)1機器易讀格式2人類可讀格式以網頁展現
xdebug.trace_options
整數,預設為0,如果設定為1,那麼追蹤檔案採用追加方式,而不是覆寫
xdebug.var_display_max_children
整數,預設128,顯示的陣列子元素或物件屬性的最大數量,不限制設定為-1,遠端除錯時不受影響
xdebug.var_display_max_data
整數,預設512,顯示字串的最大長度,不限設定為-1,不影響遠端偵錯
xdebug.var_display_max_depth
整數,預設3,顯示陣列或物件屬性時的最大巢狀深度,最大1023,可以用-1指涉這個最大數
xdebug.coverage_enable
布爾,預設為1,是否開啟程式碼覆蓋分析,雲客實測該設定項無效,開啟和得到分析結果需用函數
xdebug.gc_stats_enable
布爾值,預設為0,是否開啟垃圾回收統計分析
xdebug.gc_stats_output_dir
垃圾統計分析的寫入目錄,注意權限
xdebug.gc_stats_output_name
垃圾分析檔案的檔案名,和追蹤分析的檔案名稱規則一樣
xdebug.profiler_enable
整數,預設為0,為1時將開啟效能分析功能
xdebug.profiler_aggregate
整數,預設0,非0時將多個要求的分析資料寫入一個檔案中以進行跨請求分析
xdebug.profiler_append
整數,預設0,分析檔案是否採用追加模式,檔案名稱的設定對該項目有影響##xdebug.profiler_enable_trigger
整數,預設為0,採用觸發模式開啟分析功能,開啟它時需要關閉xdebug.profiler_enable
xdebug.profiler_enable_trigger_value
字串。預設為“”,觸發分析的金鑰,配合xdebug.profiler_enable_trigger使用
xdebug.profiler_output_dir
字串,預設為/tmp,分析檔案輸出目錄
xdebug.profiler_output_name
分析檔案名稱,分析檔案輸出目錄
xdebug.profiler_output_name
分析檔案名稱,預設為cachegrind.out.%p,見xdebug.trace_output_name
xdebug.extended_info
整數,預設為1,是否強制php解析器執行extended_info模式
xdebug.idekey
字串,預設: *complex*,調試會話id,經雲客測試瀏覽器發送任意值均可開始調試,所以她並非密鑰值,但有些調試客戶端可以通過它來判斷是否接受調試連接,所以最好統一
xdebug.remote_addr_header
預設為空字串“”,用以指定哪個http頭代表調試客戶端位址,和xdebug.remote_connect_back 組合使用
xdebug.remote_autostart
布林值,預設0,通常使用特定變數開始遠端偵錯,如果該項目被設定為1,那麼總是開啟
xdebug.remote_connect_back
布林值,預設0,解決多人偵錯問題,忽略設定的固定ip,指示伺服器依據請求位址連結
xdebug.remote_cookie_expire_time
整數。預設3600,遠端偵錯cookie超期時間
xdebug.remote_enable
布林值,預設0,是否啟用遠端偵錯##xdebug.remote_host
字串,預設:localhost,遠端偵錯客戶端的位址
xdebug.remote_log
字串,默認空,遠端偵錯日誌檔案名稱
xdebug.remote_mode
字串,遠端偵錯默認,req腳本一啟動就鏈接,jit當錯誤發生時連結
xdebug.remote_port
遠端調試端主機端口,預設9000
xdebug.remote_timeout
整數,預設200,單位毫秒,等待調試連結的時間
xdebug.default_enable
布林值,1或0,開啟以xdebug的方式進行錯誤提示,預設開啟
xdebug.max_nesting_level
整數,預設為:256,無限遞歸的保護機制,當遞歸呼叫達到該設定時程式被中斷
xdebug .max_stack_frames
整數,預設值-1,設定錯誤提示時堆疊中有多少個幀被顯示
xdebug.scream
布林值,預設為0,是否停用“@”,以便錯誤被強制顯示


xdebug擴充功能開啟後具備的函數:
當擴充功能載入後,php腳本中可以使用下列函數:
(這裡只列出部分,全部請見https ://xdebug.org/docs/all_functions)
string xdebug_call_class( [int $depth = 1] )
顯示呼叫類別
string xdebug_call_file( [int $depth = 1] )
string xdebug_call_file( [int $depth = 1] 呼叫檔案
string xdebug_call_function( [int $depth = 1] )
傳回呼叫函數
int xdebug_call_line( [int $depth = 1] )
傳回呼叫行
void xdebug_disable()
停用堆疊追蹤
void xdebug_enable()
開啟堆疊追蹤
bool xdebug_is_enabled()
檢查堆疊追蹤是否被開啟
string xdebug_get_collected_errors( [int clean] )
從錯誤集緩衝中傳回所有錯誤訊息
array xdebug_get_headers()
header()函數設定的所有頭資訊
nt xdebug_memory_usage()
傳回記憶體使用量
nt xdebug_peak_memory_usage()
傳回到目前為止腳本使用過的最大記憶體使用量
void xdebug_start_error_collection()





# #收集錯誤並禁止顯示void xdebug_stop_error_collection()

停止錯誤記錄,並從緩衝中收集###float xdebug_time_index()###傳回目前點的執行時間,單位秒####相關建議: #########淺述PHP7的安裝偵錯工具Xdebug擴充的方法#############關於PHP7如何安裝偵錯工具Xdebug擴充的方法教學(圖)##### ########Xdebug配置不成功######

以上是php調試工具Xdebug詳細使用教學課程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles