当前位置:首页> PHP教程> php进阶
关键字
文章内容
URL加解密例子.
 
 
修改时间:[2009/01/31 23:59]    阅读次数:[1472]    发表者:[起缘]
 
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><meta http-equiv="content-type" content="text/html; charset=gb2312" /><meta http-equiv="content-language" content="zh-CN" /><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="expires" content="0" /><meta http-equiv="MSThemeCompatible" content="Yes" /><meta http-equiv="imagetoolbar" content="no" />
<
meta http-equiv="widow-target" content="_top" /><meta name="robots" content="index, follow" /><meta name="author" content="3945, [email]ljm77@km169.net[/email]" />
<
meta name="keywords" content="" /><meta name="description" content="" /><meta name="copyright" content="Copyright 3945 All Rights Reserved" />
<
title>无标题文档</title>
<
style type="text/css"><!--
aa:link{text-decorationnonecolor:#000000; font-size:9pt;}    a:visited{text-decoration: none; color:#000000;}    a:hover{text-decoration: underline; color:red;}
bodytdplidivselect{font-size:9ptfont-family:"宋体";}
--></
style>
</
head>

<
body>
<?
php
function query_encode($sQuery)
{
//加密链接
    
if(strlen($sQuery)==0)
    {
        return 
'';
    }
    else
    {
        
$s_tem preg_replace("/&/i"'&'$sQuery);
        
$s_tem preg_replace("/&/i"'&'$s_tem);
        
$a_tem explode('&'$s_tem);
        
shuffle($a_tem);
        
$s_tem implode('&'$a_tem);
        
$s_tem rawurlencode($s_tem);
        
$s_tem base64_encode($s_tem);
        
$s_tem strrev($s_tem);
        return 
$s_tem;
    }
}

function 
query_decode($sEncode)
{
//解密链接
    
if(strlen($sEncode)==0)
    {
        return 
'';
    }
    else
    {
        
$s_tem strrev($sEncode);
        
$s_tem base64_decode($s_tem);
        
$s_tem rawurldecode($s_tem);
        return 
$s_tem;
    }
}

function 
rebuild_GET()
{
//重写$_GET全局变量
    
$_GET = array();
    
$s_query $_SERVER['QUERY_STRING'];
    if(
strlen($s_query)==0)
    {
        return;
    }
    else
    {
        
$s_tem query_decode($s_query);
        
$a_tem explode('&'$s_tem);
        foreach(
$a_tem as $val)
        {
            
$tem explode('='$val);
            
$_GET[$tem[0]] = $tem[1];
        }
    }
}

rebuild_GET();
echo 
'GET:<pre>'.print_r($_GETtrue).'</pre>';

function 
testGET()
{
    echo 
'Function GET:<pre>'.print_r($_GETtrue).'</pre>';
}
testGET();
?>
<
br /><br /><br />
<?
for(
$i=1$i<10$i++)
{
    
$s_url query_encode('ac=index:logo&class=45&id='.$i);
    echo 
sprintf('<a href="?%s">TEST: %s</a><br />'$s_url$s_url);
}
?>

</
body>
</
html

(非常全面的一个php技术网站, 有相当丰富的文章和源代码.)