php下一些通用的检测字符串的函数集合,方便大家使用
//【警告】:未经许可请勿随便修改
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
//
// 【文件名】: c_check.inc
// 【作 用】: 通用检测函数集
// 【作 者】: 天灰
//
// 【最后修改日期】: 2001/05/11[cxx]
// 【变量定义规则】:‘C_'=字符型,‘I_'=整型,‘N_'=数字型,‘L_'=布尔型,‘A_'=数
组型
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// ※CheckMoney($C_Money) 检查数据是否是
99999.99格式
// ※CheckEmailAddr($C_mailaddr) 判断是否为有效邮件地
址
// ※CheckWebAddr($C_weburl) 判断是否为有效网址
// ※CheckEmpty($C_char) 判断字符串是否为空
// ※CheckLengthBetween($C_char, $I_len1, $I_len2=100) 判断是否为指定长度内
字符串
// ※CheckUser($C_user) 判断是否为合法用户名
// ※CheckPassword($C_passwd) 判断是否为合法用户密
码
// ※CheckTelephone($C_telephone) 判断是否为合法电话号
码
// ※CheckValueBetween($N_var, $N_val1, $N_val2) 判断是否是某一范围内的
合法值
// ※CheckPost($C_post) 判断是否为合法邮编(固
定长度)
// ※CheckExtendName($C_filename,$A_extend) 判断上传文件的扩展名
// ※CheckImageSize($ImageFileName,$LimitSize) 检验上传图片的大小
// ※AlertExit($C_alert,$I_goback=0) 非法操作警告并退出
// ※Alert($C_alert,$I_goback=0) 非法操作警告
// ※ReplaceSpacialChar($C_char) 特殊字符替换函数
// ※ExchangeMoney($N_money) 资金转换函数
// ※WindowLocation($C_url,$C_get="",$C_getOther="") PHP中的window.location
函数
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckMoney($C_Money)
// 作 用:检查数据是否是99999.99格式
// 参 数:$C_Money(待检测的数字)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckMoney($C_Money)
{
if (!ereg("^[0-9][.][0-9]$", $C_Money)) return false;
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckEmailAddr($C_mailaddr)
// 作 用:判断是否为有效邮件地址
// 参 数:$C_mailaddr(待检测的邮件地址)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckEmailAddr($C_mailaddr)
{
if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$",
$C_mailaddr))
//(!ereg("^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$",
$c_mailaddr))
{
return false;
}
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckWebAddr($C_weburl)
// 作 用:判断是否为有效网址
// 参 数:$C_weburl(待检测的网址)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckWebAddr($C_weburl)
{
if (!ereg("^http://[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*$", $C_weburl))
{
return false;
}
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckEmpty($C_char)
// 作 用:判断字符串是否为空
// 参 数:$C_char(待检测的字符串)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckEmptyString($C_char)
{
if (!is_string($C_char)) return false; //是否是字符串类型
if (empty($C_char)) return false; //是否已设定
if ($C_char=='') return false; //是否为空
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckLengthBetween($C_char, $I_len1, $I_len2=100)
// 作 用:判断是否为指定长度内字符串
// 参 数:$C_char(待检测的字符串)
// $I_len1 (目标字符串长度的下限)
// $I_len2 (目标字符串长度的上限)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckLengthBetween($C_cahr, $I_len1, $I_len2=100)
{
$C_cahr = trim($C_cahr);
if (strlen($C_cahr) < $I_len1) return false;
if (strlen($C_cahr) > $I_len2) return false;
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckUser($C_user)
// 作 用:判断是否为合法用户名
// 参 数:$C_user(待检测的用户名)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckUser($C_user)
{
if (!CheckLengthBetween($C_user, 4, 20)) return false; //宽度检验
if (!ereg("^[_a-zA-Z0-9]*$", $C_user)) return false; //特殊字符检验
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckPassword($C_passwd)
// 作 用:判断是否为合法用户密码
// 参 数:$C_passwd(待检测的密码)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckPassword($C_passwd)
{
if (!CheckLengthBetween($C_passwd, 4, 20)) return false; //宽度检测
if (!ereg("^[_a-zA-Z0-9]*$", $C_passwd)) return false; //特殊字符检测
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckTelephone($C_telephone)
// 作 用:判断是否为合法电话号码
// 参 数:$C_telephone(待检测的电话号码)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckTelephone($C_telephone)
{
if (!ereg("^[+]?[0-9]+([xX-][0-9]+)*$", $C_telephone)) return false;
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckValueBetween($N_var, $N_val1, $N_val2)
// 作 用:判断是否是某一范围内的合法值
// 参 数:$N_var 待检测的值
// $N_var1 待检测值的上限
// $N_var2 待检测值的下限
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckValueBetween($N_var, $N_val1, $N_val2)
{
if ($N_var < $N_var1 ││ $N_var > $N_var2)
{
return false;
}
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckPost($C_post)
// 作 用:判断是否为合法邮编(固定长度)
// 参 数:$C_post(待check的邮政编码)
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckPost($C_post)
{
$C_post=trim($C_post);
if (strlen($C_post) == 6)
{
if(!ereg("^[+]?[_0-9]*$",$C_post))
{
return true;;
}else
{
return false;
}
}else
{
return false;;
}
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckExtendName($C_filename,$A_extend)
// 作 用:上传文件的扩展名判断
// 参 数:$C_filename 上传的文件名
// $A_extend 要求的扩展名
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckExtendName($C_filename,$A_extend)
{
if(strlen(trim($C_filename)) < 5)
{
return 0; //返回0表示没上传图片
}
$lastdot = strrpos($C_filename, "."); //取出.最后出现的位置
$extended = substr($C_filename, $lastdot+1); //取出扩展名
for($i=0;$i
if (trim(strtolower($extended)) == trim(strtolower($A_extend[$i]))) //转换大
小写并检测
{
$flag=1; //加成功标志
$i=count($A_extend); //检测到了便停止检测
}
}
if($flag<>1)
{
for($j=0;$j
$alarm .= $A_extend[$j]." ";
}
AlertExit('只能上传'.$alarm.'文件!而你上传的是'.$extended.'类型的文件');
return -1; //返回-1表示上传图片的类型不符
}
return 1; //返回1表示图片的类型符合要求
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:CheckImageSize($ImageFileName,$LimitSize)
// 作 用:检验上传图片的大小
// 参 数:$ImageFileName 上传的图片名
// $LimitSize 要求的尺寸
// 返回值:布尔值
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function CheckImageSize($ImageFileName,$LimitSize)
{
$size=GetImageSize($ImageFileName);
if ($size[0]>$LimitSize[0] ││ $size[1]>$LimitSize[1])
{
AlertExit('图片尺寸过大');
return false;
}
return true;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:Alert($C_alert,$I_goback=0)
// 作 用:非法操作警告
// 参 数:$C_alert(提示的错误信息)
// $I_goback(返回到那一页)
// 返回值:字符串
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function Alert($C_alert,$I_goback=0)
{
if($I_goback<>0)
{
echo "<script>alert('$C_alert');history.go($I_goback);</script>";
}
else
{
echo "<script>alert('$C_alert');</script>";
}
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:AlertExit($C_alert,$I_goback=0)
// 作 用:非法操作警告
// 参 数:$C_alert(提示的错误信息)
// $I_goback(返回到那一页)
// 返回值:字符串
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function AlertExit($C_alert,$I_goback=0)
{
if($I_goback<>0)
{
echo "<script>alert('$C_alert');history.go($I_goback);</script>";
exit;
}
else
{
echo "<script>alert('$C_alert');</script>";
exit;
}
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:ReplaceSpacialChar($C_char)
// 作 用:特殊字符替换函数
// 参 数:$C_char(待替换的字符串)
// 返回值:字符串
// 备 注:无
//-----------------------------------------------------------------------------------
-------
function ReplaceSpecialChar($C_char)
{
$C_char=HTMLSpecialChars($C_char); //将特殊字元转成 HTML 格式。
$C_char=nl2br($C_char); //将回车替换为
$C_char=str_replace(" "," ",$C_char); //替换空格替换为
$C_char=str_replace(" ","< ?",$C_char); //替换PHP标记
return $C_char;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
-------
// 函数名:ExchangeMoney($N_money)
// 作 用:资金转换函数
// 参 数:$N_money(待转换的金额数字)
// 返回值:字符串
// 备 注:本函数示例:$char=ExchangeMoney(5645132.3155) ==>
$char='¥5,645,132.31'
//-----------------------------------------------------------------------------------
-------
function ExchangeMoney($N_money)
{
$A_tmp=explode(".",$N_money ); //将数字按小数点分成两部分,并存入数组$A_tmp
$I_len=strlen($A_tmp[0]); //测出小数点前面位数的宽度
if($I_len%3==0)
{
$I_step=$I_len/3; //如前面位数的宽度mod 3 = 0 ,可按,分成$I_step
部分
}else
{
$step=($len-$len%3)/3+1; //如前面位数的宽度mod 3 != 0 ,可按,分成$I_step
部分+1
}
$C_cur="";
//对小数点以前的金额数字进行转换
while($I_len<>0)
{
$I_step--;
if($I_step==0)
{
$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3);
}else
{
$C_cur .= substr($A_tmp[0],0,$I_len-($I_step)*3).",";
}
$A_tmp[0]=substr($A_tmp[0],$I_len-($I_step)*3);
$I_len=strlen($A_tmp[0]);
}
//对小数点后面的金额的进行转换
if($A_tmp[1]=="")
{
$C_cur .= ".00";
}else
{
$I_len=strlen($A_tmp[1]);
if($I_len<2)
{
$C_cur .= ".".$A_tmp[1]."0";
}else
{
$C_cur .= ".".substr($A_tmp[1],0,2);
}
}
//加上人民币符号并传出
$C_cur="¥".$C_cur;
return $C_cur;
}
//-----------------------------------------------------------------------------------
-------
//-----------------------------------------------------------------------------------
------
// 函数名:WindowLocation($C_url,$C_get="",$C_getOther="")
// 作 用:PHP中的window.location函数
// 参 数:$C_url 转向窗口的URL
// $C_get GET方法参数
// $C_getOther GET方法的其他参数
// 返回值: 字符串
// 备 注:无
//-----------------------------------------------------------------------------------
-----
function WindowLocation($C_url,$C_get="",$C_getOther="")
{
if($C_get == "" && $C_getOther == "")
if($C_get == "" && $C_getOther <> ""){$C_target=""window.location='$C_url?
$C_getOther='+this.value"";}
if($C_get <> "" && $C_getOther == ""){$C_target=""window.location='$C_url?
$C_get'"";}
if($C_get <> "" && $C_getOther <> ""){$C_target=""window.location='$C_url?
$C_get&$C_getOther='+this.value"";}
return $C_target;
}
//-----------------------------------------------------------------------------------
-----
?>

使用數據庫存儲會話的主要優勢包括持久性、可擴展性和安全性。 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更傳統且易實現,但需謹慎配置以確保安全性。

要保護應用免受與會話相關的XSS攻擊,需採取以下措施:1.設置HttpOnly和Secure標誌保護會話cookie。 2.對所有用戶輸入進行輸出編碼。 3.實施內容安全策略(CSP)限制腳本來源。通過這些策略,可以有效防護會話相關的XSS攻擊,確保用戶數據安全。

优化PHP会话性能的方法包括:1.延迟会话启动,2.使用数据库存储会话,3.压缩会话数据,4.管理会话生命周期,5.实现会话共享。这些策略能显著提升应用在高并发环境下的效率。

theSession.gc_maxlifetimesettinginphpdeterminesthelifespanofsessiondata,setInSeconds.1)它'sconfiguredinphp.iniorviaini_set().2)abalanceisesneededeededeedeedeededto toavoidperformance andunununununexpectedLogOgouts.3)

在PHP中,可以使用session_name()函數配置會話名稱。具體步驟如下:1.使用session_name()函數設置會話名稱,例如session_name("my_session")。 2.在設置會話名稱後,調用session_start()啟動會話。配置會話名稱可以避免多應用間的會話數據衝突,並增強安全性,但需注意會話名稱的唯一性、安全性、長度和設置時機。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

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

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載
最受歡迎的的開源編輯器

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