using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.UI;
using System.IO;
using System.Data;
using System.Web.UI.WebControls;
using System.Security;
using System.Data.SqlClient;
using System.Security.Cryptography;
namespace Components
{
public class MyCommon
{
protected static string p_imgurl = System.Configuration.ConfigurationManager.AppSettings["img"];
protected static string p_fileurl = System.Configuration.ConfigurationManager.AppSettings["m_file"];
protected static string G_fileurl = System.Configuration.ConfigurationManager.AppSettings["fileurl"];
protected static string G_imgurl = System.Configuration.ConfigurationManager.AppSettings["imgfileurl"];
public string Get_imgurl(string imgurl)
{
if ((imgurl.Length == 21 || imgurl.IndexOf("/")==-1) && imgurl != "")
return p_imgurl + imgurl.Substring(0, 4) + "/" + imgurl.Substring(4, 2) + "/" + imgurl.Substring(6, 2) + "/" + imgurl;
else
return imgurl;
}
public string Get_fileurl(string fileurl,string filename)
{
return p_fileurl + fileurl.Substring(0, 4) + "/" + fileurl.Substring(4, 2) + "/" + fileurl.Substring(6, 2) + "/" +fileurl.Substring(8,8)+"/"+ filename;
}
public string upload_fileurl(string time)
{
string strpath = @"/file/" + time.Substring(0, 4) + @"/" + time.Substring(4, 2) + @"/" + time.Substring(6, 2) + @"/" + time.Substring(8, 8) + @"/";
return strpath;
}
public string upload_imgurl(DateTime time)
{
string strpath = @"/img/" + time.ToString("yyyy") + @"/" + time.ToString("MM") + @"/" + time.ToString("dd") + @"/";
return strpath;
}
public string Get_UserWay(string dt)
{
string strpath = dt.Substring(0, 4) + @"/" + dt.Substring(4, 2) + @"/" + dt.Substring(6, 2) + @"/";
return strpath;
}
private static Regex urlregex = new Regex(@"(http:([/w.]+//?)/S*)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static Regex emailregex = new Regex(@"([a-zA-Z_0-9.-]+/@[a-zA-Z_0-9.-]+/./w+)",
RegexOptions.IgnoreCase | RegexOptions.Compiled);
public void UploadFtpFile(string username, string strpath)
{
string FtpServer = "ftp.communion.cn";
string FtpUserName = "killbill";
string FtpPassword = "file@communion.cn";
FtpClient myFtpClient = new FtpClient(FtpServer, FtpUserName, FtpPassword, 100, 21);
myFtpClient.Login();
myFtpClient.ChangeDir("/" + username + "/");
myFtpClient.Upload(strpath);
myFtpClient.Close();
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="pToEncrypt">需要加密的字符串</param>
/// <returns></returns>
public string MD5Encrypt(string pToEncrypt)
{
// DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(inputByteArray);
return BitConverter.ToString(output).Replace("-", "");
}
/// <summary>
/// MD5加密
/// </summary>
/// <param name="pToEncrypt">需要加密的字符串</param>
/// <returns></returns>
public string MD5EncryptAll(string pToEncrypt)
{
// DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] output = md5.ComputeHash(inputByteArray);
return BitConverter.ToString(output);
}
public string GenHyperlinkUrl(string link)
{
link = emailregex.Replace(link, "<a href=mailto:$1>$1</a>");
link = urlregex.Replace(link, "<a href=/"$1/" target=/"_blank/">$1</a>");
return link;
}
//判断输入是不是合法EMAIL
public bool email(string str)
{
string regextex = @"[/w-]+@([/w-]+/.)+[/w-]+";
Regex regex = new Regex(regextex, RegexOptions.None);
return regex.IsMatch(str.Trim());
}
//用户注册时候用户名只能是数字或字母
public bool reg(string str)
{
string regextex = @"^[0-9a-zA-Z_/-]+$";
Regex regex = new Regex(regextex, RegexOptions.None);
return regex.IsMatch(str.Trim());
}
//判断输入信息是否数字
public bool IsNum(string str)
{
string regextext = @"^[0-9]+$";
Regex regex = new Regex(regextext, RegexOptions.None);
return regex.IsMatch(str.Trim());
}
//传入值对应数据库中读取复选框的值,相对应选中为当前项
public void chkText(System.Web.UI.WebControls.CheckBoxList chk, string id)
{
string[] mos = id.Split(new char[] { ';' });
for (int i = 0; i < chk.Items.Count; i++)
{
for (int j = 0; j < mos.Length; j++)
{
if (chk.Items[i].Text.Trim() == mos[j])
{
chk.Items[i].Selected = true;
}
}
}
}
//传入文本对应数据库中读取复选框的值,相对应选中为当前项
public void chkValue(System.Web.UI.WebControls.CheckBoxList chk, string id)
{
string[] mos = id.Split(new char[] { ',' });
for (int i = 0; i < chk.Items.Count; i++)
{
for (int j = 0; j < mos.Length; j++)
{
if (chk.Items[i].Value.Trim() == mos[j])
{
chk.Items[i].Selected = true;
}
}
}
}
//传入值对应数据库中读取单选框的值,相对应先中为当前项
public void showRLstValue(System.Web.UI.WebControls.RadioButtonList RLis, string ID)
{
for (int i = 0; i < RLis.Items.Count; i++)
{
if (ID.Trim() == RLis.Items[i].Value.Trim())
{
RLis.SelectedIndex = i;
return;
}
}
}
//传入文本对应数据库中读取单选框的值,相对应先中为当前项
public void showRLstText(System.Web.UI.WebControls.RadioButtonList RLis, string ID)
{
for (int i = 0; i < RLis.Items.Count; i++)
{
if (ID.Trim() == RLis.Items[i].Text.Trim())
{
RLis.SelectedIndex = i;
return;
}
}
}
//传入文本对应数据库中读取列表框的值,相对应先中为当前项
public void showLstText(System.Web.UI.WebControls.DropDownList Lis, string ID)
{
//Lst.Items.FindByValue(ID).Selected=true;
for (int i = 0; i < Lis.Items.Count; i++)
{
if (ID.Trim() == Lis.Items[i].Text.Trim())
{
Lis.SelectedIndex = i;
return;
}
}
}
/// <summary>
/// 传入值对应数据库中读取列表框的值,相对应先中为当前项
/// </summary>
/// <param name="Lis"></param>
/// <param name="ID"></param>
public void showLstValue(System.Web.UI.WebControls.DropDownList Lis, string ID)
{
//Lst.Items.FindByValue(ID).Selected=true;
for (int i = 0; i < Lis.Items.Count; i++)
{
if (ID.Trim() == Lis.Items[i].Value.Trim())
{
Lis.SelectedIndex = i;
return;
}
}
}
//传入文本对应数据库中读取列表框的值,相对应先中为当前项
public void showLstText(System.Web.UI.HtmlControls.HtmlSelect Lis, string ID)
{
//Lst.Items.FindByValue(ID).Selected=true;
for (int i = 0; i < Lis.Items.Count; i++)
{
if (ID.Trim() == Lis.Items[i].Text.Trim())
{
Lis.SelectedIndex = i;
return;
}
}
}
/// <summary>
/// 传入值对应数据库中读取列表框的值,相对应先中为当前项
/// </summary>
/// <param name="Lis"></param>
/// <param name="ID"></param>
public void showLstValue(System.Web.UI.HtmlControls.HtmlSelect Lis, string ID)
{
//Lst.Items.FindByValue(ID).Selected=true;
for (int i = 0; i < Lis.Items.Count; i++)
{
if (ID.Trim() == Lis.Items[i].Value.Trim())
{
Lis.SelectedIndex = i;
return;
}
}
}
//查找用户输入的文本中是否带有不法关键字“0”表示没有“1”表示有
public string FilterBadWords(string msg, string badwords)
{
string[] tempstr = badwords.Split('|');
string finalstr = msg;
string finalstr1 = msg;
for (int i = 0; i <= tempstr.Length - 1; i++)
{
finalstr1 = finalstr1.Replace(tempstr[i], new string('*', tempstr[i].Length));
}
if (finalstr == finalstr1)
{
return "0";
}
else
{
return "1";
}
}
//关键字预选
/// <summary>
/// 关键字预选
/// </summary>
/// <param name="msg"></param>
/// <param name="badwords"></param>
/// <returns></returns>
public string FilterKeyWords(string msg, string badwords)
{
//string[] tempstr = badwords.Split('|');
string finalstr = msg;
string finalstr1 = msg;
//for (int i = 0; i <= tempstr.Length - 1; i++)
//{
//finalstr1 = finalstr1.Replace(tempstr[i], new string('*', tempstr[i].Length));
//}
finalstr1 = finalstr1.Replace(badwords, "*");
if (finalstr == finalstr1)
{
return "0";
}
else
{
return "1";
}
}
//屏蔽文字
public string FilterBadWords_search(string msg, string badwords)
{
string[] tempstr = badwords.Split('|');
string finalstr = msg;
for (int i = 0; i <= tempstr.Length - 1; i++)
{
finalstr = finalstr.Replace(tempstr[i], new string('*', tempstr[i].Length));
}
return finalstr;
}
/// <summary>
/// 截短字串的函数
/// </summary>
/// <param name="mText">要加工的字串</param>
/// <param name="byteCount">长度</param>
/// <returns>被加工过的字串</returns>
public string MyLeftFunction(string mText, int byteCount)
{
string tab="table";
if (byteCount < 1) return mText;
if (mText.Length <= byteCount)
{
return mText;
}
else
{
mText = mText.Substring(0, byteCount);
if (mText.IndexOf(tab) < 0)
{
mText= mText + "...";
}
else
{
mText = "...";
}
return mText;
}
}
/// <summary>
/// 警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <returns>警告框JS</returns>
public void MsgBox(string _Msg)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
//警告框,返回上一页面
public void MsgBox_back(string _Msg)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');hostry.back(-1);");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 一个含有“确定”,点击以后就转到预设网址的警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <param name="URL">“确定”以后要转到预设网址</param>
/// <returns>警告框JS</returns>
public void MsgBox2(string _Msg, string URL)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("window.location='" + URL + "';");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 一个含有“确定”,点击后关闭自己,刷新父窗口警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <returns>警告框JS</returns>
public void alert_reloadwin(string _Msg)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("window.opener.location.href=window.opener.location.href;window.close();");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 一个含有“确定”,刷新当前窗口警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <returns>警告框JS</returns>
public void alert_updatewin(string _Msg)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("window.document.location.reload();");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 使控件获得焦点
/// </summary>
/// <param name="Ctl_Name">获得焦点控件Id值</param>
/// <param name="page">Page类</param>
public static void GetFocus(string Ctl_Name, Page page)
{
page.RegisterStartupScript(Ctl_Name, "<script>document.forms(0)." + Ctl_Name + ".focus(); document.forms(0)." + Ctl_Name + ".select();</script>");
}
/// 一个含有“确定”,点击返回先前的网页警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <param name="BackLong">要倒退几步</param>
/// <returns>警告框JS</returns>
public static void alert_history(string _Msg, int BackLong)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("history.go('" + BackLong + "')");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 一个含有“确定”,点击关闭本页的警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <returns>警告框JS</returns>
public void MsgBox3(string _Msg)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += ("alert('" + _Msg + "');");
StrScript += ("window.close();");
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 一个含有“确定”、“取消”的警告框
/// </summary>
/// <param name="_Msg">警告字串</param>
/// <param name="URL">“确定”以后要转到预设网址</param>
/// <returns>警告框JS</returns>
public static void MsgBox1(string _Msg, string URL)
{
string StrScript;
StrScript = ("<script language=javascript>");
StrScript += "var retValue=window.confirm('" + _Msg + "');" + "if(retValue){window.location='" + URL + "';}";
StrScript += ("</script>");
System.Web.HttpContext.Current.Response.Write(StrScript);
}
/// <summary>
/// 去除空格标记
/// </summary>
/// <param name="NoHTML">包括空格的源码 </param>
/// <returns>已经去除后的文字</returns>
public string Replacekongge(string strChar)
{
if (strChar.Trim() == "")
{
return "";
}
else
{
strChar = strChar.Replace(",", " ");
strChar = strChar.Replace("<style>", "");
strChar = strChar.Replace("</style>", "");
strChar = strChar.Replace("<fourth>", "");
strChar = strChar.Replace("</fourth>", "");
return strChar.Trim();
}
}
/// <summary>
/// 去除/r/n标记为换行
/// </summary>
/// <param name="NoHTML">包括/r/n的源码 </param>
/// <returns>已经去除后的文字</returns>
public string BRHTML(string Htmlstring)
{
string strOutput = Htmlstring;
strOutput = strOutput.Replace("/r/n", "<br>");
return strOutput;
}
/// <summary>
/// 去除br标记为换行
/// </summary>
/// <param name="NoHTML">包括br的源码 </param>
/// <returns>已经去除后的文字</returns>
public string rnHTML(string Htmlstring)
{
string strOutput = Htmlstring;
strOutput = strOutput.Replace("<br>", "/r/n");
return strOutput;
}
/// <summary>
/// 去除HTML标记
/// </summary>
/// <param name="NoHTML">包括HTML的源码 </param>
/// <returns>已经去除后的文字</returns>
public string NoHTML(string Htmlstring)
{
string strOutput = Htmlstring;
strOutput = Regex.Replace(strOutput, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);
// strOutput = Regex.Replace(strOutput,@"<(///s*)?!?((/w+:)?/w+)(/w+(/s*=?/s*(([""'])(在个别情况下会引起IIS吃爆CPU的现象
strOutput = Regex.Replace(strOutput, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"([/r/n])[/s]+", "", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"-->", "", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"<!--.*", "", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(quot|#34);", "/"", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(iexcl|#161);", "/xa1", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(cent|#162);", "/xa2", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(pound|#163);", "/xa3", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&(copy|#169);", "/xa9", RegexOptions.IgnoreCase);
strOutput = Regex.Replace(strOutput, @"&#(/d+);", "", RegexOptions.IgnoreCase);
strOutput.Replace("<", "");
strOutput.Replace(">", "");
strOutput.Replace("/r/n", "");
strOutput = HttpContext.Current.Server.HtmlEncode(strOutput).Trim();
return strOutput;
}
//删除图片
public void DeleteImg(string img)
{
//删除对应的图片文件
string path = @G_fileurl + img.Substring(0, 4) + "/" + img.Substring(4, 2) + "/" + img.Substring(6, 2) + "/" + img;
if (File.Exists(path))//如果该文件存在
{
File.Delete(path);//则删除之
}
}
/// <summary>
/// 替换标签中的不合法字符
/// </summary>
/// <param name="tags"></param>
/// <returns></returns>
public string ReplaceTags(string tags)
{
tags=tags.Replace(",",",");
tags = tags.Replace(" ", ",");
tags = tags.Replace(" ", ",");
string lasttags = tags.Substring(tags.Length - 1);
if (lasttags != ",")
{
tags += ",";
return tags;
}
else
{
return tags;
}
}
}
}