欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

获取FCK中插入的图片的地址

程序员文章站 2022-03-20 12:19:02
...

#region 获取FCK中所有图片路径,并保存到FCKIMG表中
public void SaveFckImg(int TitleID,string Content)
{
string[] strUrl = GetHtmlImageUrlList(Content);
for (int k = 0; k < strUrl.Length; k++)
{
string url = strUrl[k];
FckImgManage fckImg = new FckImgManage();
bool result = fckImg.SelectRepeat(TitleID,url); //查重
if (Equals(result, false))
{
fckImg.FckImgAdd(TitleID, url);
}
}
}
#endregion


#region 取得FCK内容中所有图片的 URL
/// <summary>
/// 取得HTML中所有图片的 URL。
/// </summary>
/// <param name="sHtmlText">HTML代码</param>
/// <returns>图片的URL列表</returns>
public static string[] GetHtmlImageUrlList(string sHtmlText)
{
// 定义正则表达式用来匹配 img 标签
Regex regImg = new Regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgUrl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);

// 搜索匹配的字符串
MatchCollection matches = regImg.Matches(sHtmlText);

int i = 0;
string[] sUrlList = new string[matches.Count];

// 取得匹配项列表
foreach (Match match in matches)
sUrlList[i++] = match.Groups["imgUrl"].Value;

return sUrlList;
}
#endregion