當我們踏入PHP開發的行列中的時候,我們就要時刻去要求自己,不斷學習,不斷總結,只有這樣,我們才能在PHP開發的道路上越走越遠,今天呢,就個人開發實例總結了一部分原生的常用公共方法,來讓新手的小夥伴在開發的過程中可以更快的進行開發實踐活動:
1.使用公共方法msubstr截取中文字串,過長的使用省略號代替:
使用場景:
使用這類公共方法一般都是在後台進行編輯器上傳一些文章的數據,需要在前端進行對應的數據展示,而有的時候,當後台數據過長,前端所展示的空間不足以顯示所有的數據,這時候多餘的部分使用省略號進行代替,這樣可以讓前端的數據展示美觀且簡約,給人一種賞心悅目的感覺。
程式碼展示:
#/** * 截取中文字符串,过长的使用省略号代替 */ function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true){ $str = preg_replace("/<a[^>]*>/i", "", $str); $str = preg_replace("/<\/a>/i", "", $str); $str = preg_replace("/<div[^>]*>/i", "", $str); $str = preg_replace("/<\/div>/i", "", $str); $str = preg_replace("/<!--[^>]*-->/i", "", $str);//注释内容 $str = preg_replace("/style=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/class=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/id=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/lang=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/width=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/height=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/border=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/face=.+?['|\"]/i",'',$str);//去除样式 $str = preg_replace("/face=.+?['|\"]/",'',$str);//去除样式只允许小写正则匹配没有带 i if(function_exists("mb_substr")){ $slice= mb_substr($str, $start, $length, $charset); }elseif(function_exists('iconv_substr')) { $slice= iconv_substr($str,$start,$length,$charset); }else{ preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); } $fix=''; if(strlen($slice) < strlen($str)){ $fix='...'; } return $suffix ? $slice.$fix : $slice; }
##2.enctype加密:
使用場景:
前端密碼匹配設定規則或後端密碼匹配規則的再次加密,防止其他駭客進行通用的密碼配對機制進行網站關停等工作。程式碼展示:
/** * 公共方法 * 优化md5加密: */ function enctype($password) { return md5($password . C('MD5_SUFFIX')); }
注意事項:
C('MD5_SUFFIX')專案為讀取配置的常數"MD5_SUFFIX",常數可自行設定。3.手機號碼中間4位元替換為*
#使用場景:
#網站上用戶透過手機號碼註冊帳號之後,為了保障用戶的資訊安全,將手機號碼的中間4位替換為*,即可讓手機號碼顯示不全,一定程度上保障了用戶的資訊安全。程式碼展示:
/** * 将手机号中间4位替换为* */ function suohao($phone){ $p = substr($phone,0,3)."****".substr($phone,7,4); return $p; }
4.驗證手機號碼是否正確:
# #使用場景:用戶註冊網站時校驗使用者填寫的手機號碼是否正確,方便我們後台人員後期對資料的維護。
程式碼展示:/**
* 验证手机号是否正确
* @author honfei
* @param number $mobile
*/
function isMobile($mobile) {
if (!is_numeric($mobile)) {
return false;
}
return preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,6,7,8]{1}\d{8}$|^18[\d]{9}$#', $mobile) ? true : false;
}
#5.驗證輸入的內容是否為純數字:
使用場景:校驗使用者提交必須為數字項目的參數時的校驗工作,校驗之後可以給使用者進行對應的回饋信息,幫助使用者進行資料提交的有效性。
程式碼展示:/**
* 验证输入的内容是否为纯数字
* @author wdy
* @param number $mobile
*/
function isNumeric($number) {
if (!is_numeric($number)) {
return false;
}
return preg_match('/^\d+$/i', $number) ? true : false;
}
6.驗證信箱是否正確:##使用場景:
使用者註冊或綁定郵箱資訊的時候,需要校驗信箱的真實有效性,方便後期使用者找回密碼時可以快速有效的收取到對應的校驗碼。
程式碼展示:
/** * 验证邮箱是否正确 * @author wdy * @param 18738536986@163.com $email */ function isEmail($email){ $mode = '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/'; if(preg_match($mode,$email)){ return true; }else{ return false; } }7.遞歸重新排序無限極分類數組:
使用場景:
商城分類通常會使用此方法,可以行之有效的進行對商城分類的資料讀取和展示工作,方便個人的維護,同時方便了使用者的體驗。
程式碼顯示:
//递归重新排序无限极分类数组 function recursive($array,$pid=0,$level=0){ //接收传递过来的数组 $arr = array(); foreach ($array as $value) { if($value['pid'] == $pid){ //定义分类级别 $value['level'] = $level; //定义分类分隔符号 $value['html'] = str_repeat('-', $level); //$arr[]来存储$value $arr[] = $value; //array_merge():函数把一个或多个数组合并为一个数组。 $arr = array_merge($arr,recursive($array,$value['id'],$level+1)); } } return $arr; }#8.取得所有分類子分類的ID:
使用場景:
商城分類的快速讀取,可以對分類資訊資料進行分割快速整合和資料展示,同時方便使用者的快速存取體驗。
程式碼展示:
//获取所有分类子分类的ID function get_all_child($array, $id){ //定义一个数组 $arr = array(); //循环遍历 foreach ($array as $v) { //判断pid是否等于id if ($v['pid'] == $id) { //$arr接收所有的id $arr[] = $v['id']; //array_merge():函数把一个或多个数组合并为一个数组。 $arr = array_merge($arr, get_all_child($array, $v['id'])); } } return $arr; }
以上是PHP開發實例之公共方法【程式碼詳解】的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHPSession失效的原因包括配置錯誤、Cookie問題和Session過期。 1.配置錯誤:檢查並設置正確的session.save_path。 2.Cookie問題:確保Cookie設置正確。 3.Session過期:調整session.gc_maxlifetime值以延長會話時間。

在PHP中調試會話問題的方法包括:1.檢查會話是否正確啟動;2.驗證會話ID的傳遞;3.檢查會話數據的存儲和讀取;4.查看服務器配置。通過輸出會話ID和數據、查看會話文件內容等方法,可以有效診斷和解決會話相關的問題。

多次調用session_start()會導致警告信息和可能的數據覆蓋。 1)PHP會發出警告,提示session已啟動。 2)可能導致session數據意外覆蓋。 3)使用session_status()檢查session狀態,避免重複調用。

在PHP中配置會話生命週期可以通過設置session.gc_maxlifetime和session.cookie_lifetime來實現。 1)session.gc_maxlifetime控制服務器端會話數據的存活時間,2)session.cookie_lifetime控制客戶端cookie的生命週期,設置為0時cookie在瀏覽器關閉時過期。

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 1.持久性:即使服務器重啟,會話數據也能保持不變。 2.可擴展性:適用於分佈式系統,確保會話數據在多服務器間同步。 3.安全性:數據庫提供加密存儲,保護敏感信息。

在PHP中實現自定義會話處理可以通過實現SessionHandlerInterface接口來完成。具體步驟包括:1)創建實現SessionHandlerInterface的類,如CustomSessionHandler;2)重寫接口中的方法(如open,close,read,write,destroy,gc)來定義會話數據的生命週期和存儲方式;3)在PHP腳本中註冊自定義會話處理器並啟動會話。這樣可以將數據存儲在MySQL、Redis等介質中,提升性能、安全性和可擴展性。

SessionID是網絡應用程序中用來跟踪用戶會話狀態的機制。 1.它是一個隨機生成的字符串,用於在用戶與服務器之間的多次交互中保持用戶的身份信息。 2.服務器生成並通過cookie或URL參數發送給客戶端,幫助在用戶的多次請求中識別和關聯這些請求。 3.生成通常使用隨機算法保證唯一性和不可預測性。 4.在實際開發中,可以使用內存數據庫如Redis來存儲session數據,提升性能和安全性。

在無狀態環境如API中管理會話可以通過使用JWT或cookies來實現。 1.JWT適合無狀態和可擴展性,但大數據時體積大。 2.Cookies更傳統且易實現,但需謹慎配置以確保安全性。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

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

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