找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1847|回复: 0
打印 上一主题 下一主题

分享自定义的几个PHP功能函数

[复制链接]

2560

主题

2560

帖子

7622

积分

论坛元老

Rank: 8Rank: 8

积分
7622
跳转到指定楼层
楼主
发表于 2018-2-14 05:46:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            最近不是在折腾论坛嘛,各种类各种函数,原创一些,从别人那儿qiang过来一些,在此分享出来,希望有朋友能用的到~
注意:部分函数可能不够完善,由此造成的漏洞风险自担~
提交过滤
function filter($text)
{
//完全过滤注释
$text = preg_replace('//', '', $text);
//完全过滤js
$text = preg_replace('//', '', $text);
//过滤危险的属性,如:过滤on事件lang js
while (preg_match('/(/i', '', $text);
//反转换
$text = str_replace('[', '', $text);
$text = str_replace('|', '"', $text);
return $text;
}
提交过滤2
function stripslashes_array(&$array)
{
while (list($key, $var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || '' . intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
字符串截取(这个是emlog里提出来的,其实也就是substr的增强版)
function subString($strings, $start, $length)
{
if (function_exists('mb_substr') && function_exists('mb_strlen')) {
$sub_str = mb_substr($strings, $start, $length, 'utf8');
return mb_strlen($sub_str, 'utf8') = 128)
$char++;
}
$str2 = substr($strings, $start, $length + 1);
$str3 = substr($strings, $start, $length + 2);
if ($char % 3 == 1) {
if ($length
IP地址匿名化(最后一位替换为星号)
function AnonymousIP()
{
$ip = GetIP();
if ($ip == "Unknown") {
$removed_ip = "未知用户";
}
if (strpos($ip, ":")) {
$removed_ip = "IPv6用户";
} else {
$reg1 = '/((?:\d+\.){3})\d+/';
$reg2 = '~(\d+)\.(\d+)\.(\d+)\.(\d+)~';
$removed_ip = preg_replace($reg1, "\\1*", $ip);
}
return $removed_ip;
}
获取客户端IP地址
function GetIP()
{
if (@$_SERVER["HTTP_X_FORWARDED_FOR"])
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if (@$_SERVER["HTTP_CLIENT_IP"])
$ip = $_SERVER["HTTP_CLIENT_IP"];
else if (@$_SERVER["REMOTE_ADDR"])
$ip = $_SERVER["REMOTE_ADDR"];
else if (@getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (@getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if (@getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else
$ip = "Unknown";
return $ip;
}
字符串加密(支持中文)
function dencrypt($string, $isEncrypt = true, $key = "youdian")
{
if (!isset($string{0}) || !isset($key{0})) {
return false;
}

$dynKey = $isEncrypt ? hash('sha1', microtime(true)) : substr($string, 0, 40);
$fixedKey = hash('sha1', $key);

$dynKeyPart1 = substr($dynKey, 0, 20);
$dynKeyPart2 = substr($dynKey, 20);
$fixedKeyPart1 = substr($fixedKey, 0, 20);
$fixedKeyPart2 = substr($fixedKey, 20);
$key = hash('sha1', $dynKeyPart1 . $fixedKeyPart1 . $dynKeyPart2 . $fixedKeyPart2);

$string = $isEncrypt ? $fixedKeyPart1 . $string . $dynKeyPart2 : (isset($string{339}) ? gzuncompress(base64_decode(substr($string, 40))) : base64_decode(substr($string, 40)));

$n = 0;
$result = '';
$len = strlen($string);

for ($n = 0; $n  299 ? gzcompress($result) : $result)) : substr($result, 20, -20);
}
检查字符串是否包含中文
function CheckChinese($string)
{
if (preg_match("/[\x7f-\xff]/", $string)) {
return true;
} else {
return false;
}
}
隐藏文件真实路径
function FileHeaderJump($file)
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit;
}
生成随机字符串,自定义长度
function CreateRandomString($length)
{
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$password = "";
for ($i = 0; $i
            
            
您可能感兴趣的文章:
  • php 分库分表hash算法
  • 理解php Hash函数,增强密码安全
  • PHP中用hash实现的数组
  • php的hash算法介绍
  • php常用hash加密函数
  • PHP利用hash冲突漏洞进行DDoS攻击的方法分析
  • php对文件进行hash运算的方法
  • PHP随机生成唯一HASH值自定义函数
  • php自定义hash函数实例
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端