设为首页 收藏本站
查看: 769|回复: 0

[经验分享] PHP常用函数类

[复制链接]

尚未签到

发表于 2017-3-28 10:38:37 | 显示全部楼层 |阅读模式
<?php
class useful{
 
/*
  * 常用函数类
  * 作    者:多菜鸟
  * 联系邮箱:kingerq AT msn DOT com
  * 创建时间:2005-07-18
  * 来源:
http://blog.csdn.net/kingerq
  */

 
 
/*
  * 功能:格式化数字,以标准MONEY格式输出
  */

 
 
function formatnumber($num){
 
return number_format($num, 2, ".", ",");
 
}
 
 
/*
  * 功能:格式化文本,将\n转成<br>等
  * 参数:$string 来源字符串
  * 返回:处理后的字符串
  */

 
function formatstring($string = ""){
 
$string = preg_replace(array("/ /", "/ /"), array("&nbsp;", "&nbsp;&nbsp;"), $string);
 
return nl2br($string);
 
}
 
 
/*
  * 功能:格式化文本输出
  * 参数 $text 为需格式化的文本内容
  */

 
function formatcontent($text){
 
$trans = get_html_translation_table(HTML_SPECIALCHARS);
 
$trans = array_flip($trans);
 
$text = strtr($text, $trans);
 
//$text = str_replace("\n", "<br>", $text);
 
//$text = str_replace(" ", "&nbsp;", $text);
 
return $text;
 
}
 
 
/*
  * 将字节转换成Kb或者Mb...
  * 参数 $num为字节大小
  */

 
function bitsize($num){
 
if(!preg_match("/^[0-9]+$/", $num)) return 0;
 
$type = array( "B", "KB", "MB", "GB", "TB", "PB" );
 
 
$j = 0;
 
while( $num >= 1024 ) {
  
if( $j >= 5 ) return $num.$type[$j];
  
$num = $num / 1024;
  
$j++;
 
}
 
return $num.$type[$j];
 
}
 
 
/*
  * 功能:不足3的倍数位的数字,用0补足
  * $num 需补充的数字
  * 返回补充完整的数字串
  */

 
function prefix($num){
 
if( strlen( $num ) % 3 == 0 ) {
  
return $this->prefix("0".$num);
 
}
 
return $num;
 
}
 
 
/*
  * 功能:连续建目录
  * $dir 目录字符串
  */

 
function makedir( $dir, $mode = "0777" ) {
 
if( ! $dir ) return 0;
 
$dir = str_replace( "\\", "/", $dir );
 
 
$mdir = "";
 
foreach( explode( "/", $dir ) as $val ) {
  
$mdir .= $val."/";
  
if( $val == ".." || $val == "." ) continue;
  
  
if( ! file_exists( $mdir ) ) {
    
if(!@mkdir( $mdir, $mode )){
    
echo "创建目录 [".$mdir."]失败.";
    
exit;
    
}
  
}
 
}
 
return true;
 
}
 
 
/*
  * 功能:检测时间的正确性
  * $date 为时间,例:YYYY-MM-DD
  * 返回:通过返回true,反之返回false
  */

 
function chkdate( $date ) {
 
$d = explode( "-", $date );
 
if( checkdate( $d[1], $d[2], $d[0] ) ) {
  
return true;
 
}else {
  
return false;
 
}
 
}
 
 
/*
  * 防注入处理(为变量加入斜杠)函数
  * 参数 $array 为防注入变量数组
  */

 
function add_s(&$array){
 
foreach($array as $key=>$value){
  
if(!is_array($value)){
    
$array[$key]=addslashes($value);
  
}else{
    
$this->add_s($array[$key]);
  
}
 
}
 
}
 
 
/*
  * 转换HTML特殊字符(表单提交的时候使用,防止恶意JS代码)
  * 参数 $array 为需转换的字符串或者数组
  */

 
function specialhtml(&$array){
 
if(is_array($array)){//数组处理
  
foreach($array as $key=>$value){
    
if(!is_array($value)){
    
$array[$key]=htmlspecialchars($value);
    
}else{
    
$this->specialhtml($array[$key]);
    
}
  
}
 
}else{
  
$array = htmlspecialchars($array);
 
}
 
}
 
 
/*
  * 可以避免乱码的截取汉字
  * 参数 $str 为字符串,$start 为开始字符,$len 结束字符
  * 返回截取后的字符
  */

 
function msubstr($str, $start, $len) {
 
$tmpstr = "";
 
$strlen = $start + $len;
 
for($i = 0; $i < $strlen; $i++) {
  
if(ord(substr($str, $i, 1)) > 0xa0) {
    
$tmpstr .= substr($str, $i, 2);
    
$i++;
  
} else
    
$tmpstr .= substr($str, $i, 1);
 
}
 
return $tmpstr;
 
}
 
 
/*
  * 功能:综合提示JS代码输出
  * 参数 $msg 为提示信息
  *      $direct 为提示类型 0为提示(默认)1为提示刷新返回 2为提示返回
  * 输出提示代码并结束程序
  */

 
function alert_msg($msg, $direct = "0"){
 
switch($direct){
  
case '0'://提示
    
$script = "";
  
case '1'://提示刷新返回
    
$script = "location.href=\"".$_SERVER["HTTP_REFERER"]."\";";
    
break;
  
case '2'://提示返回
    
$script = "history.back();";
    
break;
  
default://提示转向指定页面
    
$script = "location.href=\"".$direct."\";";
 
}
 
echo "<script language='javascript'>window.alert('".$msg."');".$script."</script>";
 
exit;
 
}
 
 
/*
  * 功能:取得给定日期所在周的开始日期和结束日期
  * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD
  *       $first 一周以星期一还是星期天开始,0为星期天,1为星期一
  * 返回:数组array("开始日期", "结束日期");
  */

 
function aweek($gdate = "", $first = 0){
 
if(!$gdate) $gdate = date("Y-m-d");
 
$w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6
 
$dn = $w ? $w - $first : 6;//要减去的天数
 
$st = date("Y-m-d", strtotime("$gdate -".$dn." days"));
 
$en = date("Y-m-d", strtotime("$st +6 days"));
 
return array($st, $en);//返回开始和结束日期
 
}
 
 
/*
  * 功能:检测页面是否合法连接过来
  * 如果为非法,就转向到登陆窗口
  */

 
function checkurl(){
 
//如果直接从浏览器连接到页面,就连接到登陆窗口
 
//echo "referer:".$_SERVER['HTTP_REFERER'];
 
if(!isset($_SERVER['HTTP_REFERER'])) {
  
header("location: index.php");
  
exit;
 
}
 
$urlar = parse_url($_SERVER['HTTP_REFERER']);
 
//如果页面的域名不是服务器域名,就连接到登陆窗口
 
if($_SERVER["HTTP_HOST"] != $urlar["host"]) {
  
header("location: index.php");
  
exit;
 
}
 
}
 
 
/*
  * 读取文件内容
  * 参数 $file 为文件名及完整路径
  * 返回文件内容
  */

 
function readfiles($file){
 
$tdata = "";
 
$fp = fopen($file, "r");
 
 
if(filesize($file) <= 0) return;
 
 
while($data = fread($fp, filesize($file))){
  
$tdata .= $data;
 
}
 
fclose($fp);
 
return $tdata;
 
}
}
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356307-1-1.html 上篇帖子: php jquery yui grid css 下篇帖子: advertising.php源代码分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表