玩转C科技.NET

从学会做人开始认识这个世界!http://volnet.github.io

导航

移除Url参数的函数

随手写了一两个移除Url参数的函数,怕以后找不到了。(未经过严格测试,因此暂时发现用不着了,呵呵)
        /// <summary>
        
/// 移除Url中的参数
        
/// </summary>
        
/// <param name="url">原始url</param>
        
/// <param name="parameters">需要移除的参数</param>
        
/// <returns>移除了参数的Url</returns>

        private string RemoveUrlParameters(string url , params string[] parameters)
        
{
            
string cleanUrl = string.Empty;
            
string parasString = string.Empty;
            
string[] urlArray = new string[]{};
            
string resultUrl = string.Empty;

            
//将原始Url以“?”“&”分解成字符串数组(因为参数是以此二符号作为分隔符的)
            if (url != string.Empty)
            
{
                urlArray 
= url.ToLower().Split(new string[] "?","&" }, StringSplitOptions.RemoveEmptyEntries);
            }


            
//其中数组的第一个元素是无任何参数的Url
            cleanUrl = urlArray[0];
            resultUrl 
+= cleanUrl;

            
//数组的维数
            int countUrlArray = urlArray.Length;
            
//由于用于隔离参数和Url之间需要使用“?”,而参数之间的分隔则使用"&",而且只有第一次的时候是用“?”
            int addTimes = 0;

            
//判断所有要移除的参数和现有Url字符串数组之间的关系,
            
//如果当前遍历到的Url字符串
            foreach (string para in parameters)
            
{
                
for(int i =1;i<countUrlArray ;i++)
                
{
                    
if (!ParameterContains(urlArray[i],para))
                    
{
                        
if (addTimes == 0)
                        
{
                            resultUrl 
= resultUrl + "?" + urlArray[i];
                        }

                        
else
                        
{
                            resultUrl 
= resultUrl + "&" + urlArray[i];
                        }

                        addTimes
++;
                    }

                }

            }

            
return resultUrl;
        }


        
/// <summary>
        
/// 判断形如“abcdefg=1234567”的字符串等号左侧是否是参数parameter,是则返回true,否则返回false
        
/// </summary>
        
/// <param name="paraString">形如“abcdefg=1234567”的字符串</param>
        
/// <param name="parameter"></param>
        
/// <returns></returns>

        private bool ParameterContains(string paraString, string parameter)
        
{
            
bool isContain = false;
            
if(paraString!=string.Empty)
            
{
                
string[] paraKey = paraString.Trim().Split(new char[] '=' });
                
if (paraKey[0== parameter)
                    isContain 
= true;
            }

            
return isContain;
        }


        
/// <summary>
        
/// 移除Url中的全部参数
        
/// </summary>
        
/// <param name="url">原始Url</param>
        
/// <returns></returns>

        private string RemoveUrlParameters(string url)
        
{
            
string cleanUrl = string.Empty;
            
if (url != string.Empty)
            
{
                
string[] urlArray = url.ToLower().Split(new string[] "?" }, StringSplitOptions.RemoveEmptyEntries);
                cleanUrl 
= urlArray[0];
            }

            
return cleanUrl;
        }

posted on 2007-07-16 22:25  volnet(可以叫我大V)  阅读(713)  评论(0编辑  收藏  举报

使用Live Messenger联系我
关闭