获取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