收集的一些函数

 

// 常位于函数文件的开头,禁止在url中直接访问该文件
if (eregi("function.php",$_SERVER['PHP_SELF'])) {
    Header("Location: ../index.php");
    die();
}


//
返回安全字符串
function getSafeValue($value)
{
    if (! get_magic_quotes_gpc()) {
        return strip_tags(addslashes($value));
    } else {
        return strip_tags($value);
    }
}
/*
get_magic_quotes_gpc
函数说明

取得 PHP 环境变量 magic_quotes_gpc 的值。

本函数取得 PHP 环境配置的变量 magic_quotes_gpc (GPC, Get/Post/Cookie) 值。返回 0 表示关闭本功能;返回 1 表示本功能打开。当 magic_quotes_gpc 打开时,所有的 ' (单引号), " (双引号), / (反斜线) and 空字符会自动转为含有反斜线的溢出字符。

参考资料: http://www.cycoo.net/study/php/function.php-get_magic_quotes_gpc.htm
*/



//
prefix分成2部分,最后一位数字代表高度使用的CSS样式,其余的部分代表正则
Pattern
//
常用于关键字高亮显示

function highlight(& $item, $key, $prefix) {   
    $prefix1 = preg_quote(substr($prefix, 0, strlen($prefix) -1), '/');
    $prefix2 = intval(substr($prefix, -1));
      $item = preg_replace("/$prefix1/is", "<span class='regSearch$prefix2'>/$0</span>", $item);
}


//
用于URL改写,把url中的问号'?'和与符号'&'改写成斜杆'/''+'',''-'等字符
function parse_url_path()
{
  /*
此方法仅用于apache服务器 */
  if(isset($_SERVER[PATH_INFO])) {//
PATH_INFO可用,注意apache2默认不可用

    $query_string = $_SERVER[PATH_INFO];
  } else {
    Return '';
  }
  //strip '.html','.htm'
  $query_string = str_replace('.html', '', $query_string);
  $query_string = str_replace('.htm', '', $query_string); 
  if(empty($query_string)) {
    Return '';
  } else {
    $args = split("/", substr($query_string,1)); //
分裂成数组
    Return $args;
  }
}



//
专用函数,只用于将brand按字母排序
function GroupLetter($products,$group,$join, $categories_name = '') {
  $out = array();
  if(! $products) {
        Return array();
  }
  foreach($products as $v) {
    $key   = $v[$group];
    $value = $v[$join];
    $out[$key][$join][] = "$value";
    $out[$key]['models_id'][] = $v['models_id'];
  }
  $tmp_category_path = getCategoryPath($categories_name);
  $filename = $tmp_category_path['modelsFile'];   
  $result = array();
  foreach($out as $k=>$v) {
    //
定义brand的链接
    $numBrand = count($v[$join]);
    for ($i=0; $i<$numBrand; $i++) {
        $href[$k][] = "<a href=/"" . $filename . "/" . convertFileName($v['models_brand'][$i]) . '/' . $v['models_id'][$i] . REWRITE_FILE_EXT2 . "/" class=/"brand/">" . $v[$join][$i] . "</a>";
    }
    $result[] = array($group => $k, $join => $href[$k]);
   
  }
  return $result;
}


//
获得字符串的Ascii
function AsciiCode($name) {
    if(empty($name)) {
        Return '';
    }
    $name = strval($name);
    $convert_name = '';
    $length = strlen($name);
    for($i=0; $i<$length; $i++) {
        $convert_name[] = ord($name[$i]);
    }
    $name = implode("", $convert_name);
    Return $name;
}


//
判断用户是否已经登录
function checkUser($keywords)
{
  $key  = $_SERVER['SERVER_NAME'] . dirname($_SERVER["REQUEST_URI"]);
  $pass = crc32(md5($key));
  $keywords = base64_decode($keywords);
  if($keywords == $pass)
  {
    Return true;
  } else
  {
      Return false;
  }

}


 /**
 *
此函数对指定的一个二维数组$products$group进行分类筛选,将相同$group$join值连接在一起
 *@Parameters:$products,$group,$join,
其中$products包含了要操作的数据
 *@Return:
返回一个二维数组$result,数组包括两个键名:$group,$join
 */
 function GroupBrand($products,$group,$join) {
  $out = array();
  if(! $products) {
        Return array();
  }
  foreach($products as $v) {
    $key   = strtoupper($v[$group]);
    $value = $v[$join];
    /*
    if(isset($out[$key]))
      $out[$key] .= ", $value";
    else
      $out[$key] = "$value";
   
    */
    $out[$key][] = "$value";
  }
  $result = array();
  foreach($out as $k=>$v)
    $result[] = array($group => $k, $join => $v);

  return $result;
}

 /**
 *
同上,但以,分隔

 */
 function GroupBrand2($products,$group,$join) {
  $out = array();
  if(! $products) {
        Return array();
  }
  foreach($products as $v) {
    $key   = strtoupper($v[$group]);
    $value = $v[$join];
    if(isset($out[$key]))
      $out[$key] .= ",$value";
    else
      $out[$key] = "$value";
   
  }
  $result = array();
  foreach($out as $k=>$v)
    $result[] = array($group => $k, $join => $v);

  return $result;
}

 /**
 *
此函数对指定的一个二维数组$products$group进行筛选,将相同$group$join值只留一个
 *@Parameters:$products,$group,$join,
其中$products包含了要操作的数据
 *@Return:
返回一个二维数组$result,数组包括两个键名:$group,$join
 */

 function StripRepeated($products,$group,$join) {
  $out = array();
  if(!$products) {
        Return array();
  }
    foreach($products as $v) {
        $key   = $v[$group];
        $value = $v[$join];
        if(! isset($out[$key]))
        {
            $out[$key] = "$value";
        }
    }
    $result = array();
    foreach($out as $k=>$v)
      $result[] = array($group => $k, $join => $v);

    return $result;
}


 /**
  * send a mail
  * this function only can send a mail without attachment file
  * it must be support by mimie class
  * @sendtype  => (smtp,mail);
  */
  function SendMail($to = SUPPORTER_EMAIL, $from = 'unnamed', $subject, $message, $sendtype = 'smtp')
  {
      global $class_mail;
    $domain = $_SERVER['REMOTE_ADDR'];
    $send_date = strftime(DATE_FORMAT_LONG);
    $send_time = strftime(DATE_TIME_FORMAT);
    if(empty($subject) || !isset($subject)) {
        $subject = "a email  from : $domain at " . $send_date . " " . $send_time;
    }
    $mailmessage  = $message . "<hr>this email is from :";
    $mailmessage .= $domain . " at " . $send_date . " " . $send_time;
    $text = $mailmessage;
    $html = $mailmessage;
    $class_mail->setHtml($html, $text);
    $class_mail->setReturnPath($to);
    $class_mail->setFrom($from);
    $class_mail->setBcc(CC_EMAIL);
    $class_mail->setSubject($subject);
    $result = $class_mail->send(array($to), $sendtype);
    if (! $result) {
      Show_Error_Message("Mail send error", $class_mail->errors);
    }
  }

 // Redirect page
 function Redirect_Page($url = "/") {
   $location="<script language=/"javascript/">window.location.href='" .$url. "';</script>";
    echo $location;
    return;
 }


 // Alert Window Message
 function Alert_Message($message = "") {
   echo "<script language=javascript> alert('" .$message. "');</script>";
   return;
 }


 //Show user define information in window
 function Show_Message($title, $message)
 {
   $title = htmlspecialchars($title);
   $message = htmlspecialchars($message);
   $messageTable  = "<table border=/"0/" width=/"80%/" cellspacing=/"0/" cellpadding=/"0/" align=/"center/">";
   $messageTable .= "<tr>";
   $messageTable .= "<td width=/"100%/" height=/"14/" class=/"infoBoxHeading/">";
   $messageTable .= $title;
   $messageTable .= "</td></tr></table>";
   $messageTable .= "<table border=/"0/" width=/"80%/" cellspacing=/"0/" cellpadding=/"1/" class=/"infoBox/" align=/"center/">";
   $messageTable .= "<tr>";
   $messageTable .= "<td><table border=/"0/" width=/"100%/" cellspacing=/"0/" cellpadding=/"3/" class=/"infoBoxContents/">";
   $messageTable .= "<tr><td><img src=/"/images/pixel_trans.gif/" border=/"0/" width=/"100%/" height=/"1/"></td></tr>";
   $messageTable .= "<tr><td align=/"center/" class=/"boxText/">";
   $messageTable .= $message;
   $messageTable .= "</td></tr>";
   $messageTable .= "<tr><td><img src=/"/images/pixel_trans.gif/" border=/"0/" width=/"100%/" height=/"1/"></td></tr></table></td></tr></table>";
   echo($messageTable);
   return;
 }


/**
  * Show Error Message and Send a email to the supporter of the website.
  */

 function Show_Error_Message($errorTitle, $errorMessage, $errorFile = __FILE__, $errorLine = __LINE__)
 {
   $errorFile    = basename($errorFile);
   $errorTitle   = htmlspecialchars($errorTitle);
   $errorMessage = htmlspecialchars($errorMessage);
   $errorTable  = "<table border=/"0/" width=/"600/" cellspacing=/"0/" cellpadding=/"0/" align=/"center/">";
   $errorTable .= "<tr>";
   $errorTable .= "<td width=/"100%/" height=/"14/" style=/"font-family:Verdana, Arial, sans-serif;font-size: 10px;  font-weight: bold;  background: #EBF3E6; color: #000000;/">&nbsp;&nbsp;";
   $errorTable .= $errorTitle;
   $errorTable .= "</td></tr></table>";
   $errorTable .= "<table border=/"0/" width=/"600/" cellspacing=/"0/" cellpadding=/"1/" style=/"background: #FFFFFF;  border: 1px solid #EBF3E6;  border-spacing: 0px;/" align=/"center/">";
   $errorTable .= "<tr>";
   $errorTable .= "<td><table border=/"0/" width=/"100%/" cellspacing=/"0/" cellpadding=/"3/" class=/"infoBoxContents/">";
   $errorTable .= "<tr><td><img src=/"/images/pixel_trans.gif/" border=/"0/" width=/"100%/" height=/"1/"></td></tr>";
   $errorTable .= "<tr><td align=/"center/" style=/"font: 11px Verdana, Arial, Helvetica, sans-serif;    color: #000000;/">";
   $errorTable .= "<strong>ERROR:</strong> $errorMessage";
   $errorTable .= "<p>Error occurred on line $errorLine of file $errorFile</p>";
   $errorTable .= "<P>An email had sent to the web supporter.</p>";
   $errorTable .= "<P><a href=/"//"><img src=/"/images/cart/button_continue.gif/" border='0'></a></p>";
   $errorTable .= "</td></tr>";
   $errorTable .= "<tr><td><img src=/"/images/pixel_trans.gif/" border=/"0/" width=/"100%/" height=/"1/"></td></tr></table></td></tr></table>";
   echo($errorTable);
   $errorTable .= sprintf('<p>%s</p>', $_SERVER["REQUEST_URI"]);
   //send mail to supporter
   SendMail(WEBMASTER_EMAIL, $_SERVER['REMOTE_ADDR'], $errorTitle, $errorTable);
   //die();     
 }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值