php被截斷
發布時間: 2025-09-25 08:27:34
⑴ 如何利用php來截取一段中文字元串而不出現亂碼
/*
功能:截取全形和半形混合的字元串以避免亂碼
參數:
$str_cut 需要截斷的字元串
$length允許字元串顯示的最大長度
*/
functionsubstr_cut($str_cut,$length=30){
if(strlen($str_cut)>;$length){
for($i=0;$i<$length;$i++)
if(ord($str_cut[$i])>;128) $i++;
$str_cut=substr($str_cut,0,$i)."...";
}
return$str_cut;
}
說明:
程序的關鍵語句是:
for($i=0;$i<$length;$i++)
if(ord($str_cut[$i])>;128) $i++;
$str_cut=substr($str_cut,0,$i)."...";
如果字元的ASCII碼大於128,說明當前字元和下一個字元是屬於一個漢字的。
則,$i++跳過對下一個字元的判斷。
再結合循環中的$i++,實際上,當遇到一個漢字時,$i就會加2,從而正確的跳過漢字。
最終實現的效果是,$i變數指向的要麼是半形的字元,要麼是全形漢字的首字元,不會指向
全形漢字的第二個字元,所以,當$i>;=$length時,循環結束,使用
$str_cut=substr($str_cut,0,$i)."...";截取字元時自然也就不會出現亂碼了。
本人在寫一個程序時需要利用PHP從一段字元串中截取指定長度的一段字元下來。以前在寫ASP的時候,參考動網的程序寫過類似的程序,不過,還沒用PHP寫過。
想偷懶,看有不有現成的代碼可以用。於是,在GOOGLE中輸入:PHP截斷字元後查找到一段代碼。
⑵ php一句話木馬怎麼上傳
PHP一句話木馬的上傳方法主要包括以下幾種:
利用00截斷上傳:
- 原理:當程序員對文件上傳路徑的過濾不嚴格時,會產生0X00上傳截斷漏洞。
- 方法:使用Burpsuite抓包,將文件擴展名(如.php)後的點(.)替換為0X00。文件系統在讀到0X00時會認為文件結束,從而將包含一句話木馬的文件內容寫入目標PHP文件。
構造伺服器端擴展名檢測上傳:
- 原理:伺服器依據黑名單檢測上傳文件的擴展名,若擴展名不在黑名單中則允許上傳。
- 方法:將一句話木馬文件名(如lubr.php)改為帶有不在黑名單中的擴展名(如lubr.php.abc)。伺服器驗證時只會檢查最後一個擴展名(.abc),只要它符合黑名單規則,文件就能上傳。隨後,由於Apache等伺服器在解析時會向前尋找可解析的擴展名(.php),因此一句話木馬能被執行。
繞過Content-Type檢測上傳:
- 原理:伺服器會檢測上傳文件的Content-Type類型,若類型在白名單內則允許上傳。
- 方法:使用Burpsuite截取並修改數據包里文件的Content-Type類型,使其符合白名單規則,從而實現上傳。
構造圖片木馬繞過文件內容檢測上傳:
- 原理:伺服器通常使用getimagesize()函數檢測文件是否為有效圖片文件。
- 方法:將一句話木馬嵌入到圖片文件中,並確保圖片文件在視覺上保持正常。由於getimagesize()函數只檢測文件頭信息,因此即使文件包含木馬代碼,也可能被誤判為有效圖片文件而允許上傳。
請注意,上述方法均涉及非法入侵和攻擊行為,嚴重違反了法律法規和道德准則。在實際應用中,應嚴格加強文件上傳的安全防護,避免漏洞被惡意利用。
熱點內容