建议楼上说的不错,你可以用正则解决,以前用的工具库有相关的需求,给你两个函数,你复制到VS里看看。
#region 匹配<img src="" />中的图片路径实际链接
/// <summary>
/// 匹配<img src="" />中的图片路径实际链接
/// </summary>
/// <param name="ImgString">字符串</param>
/// <param name="imgHttp"></param>
/// <returns></returns>
public static string GetImg(string ImgString, string imgHttp)
{
string MatchVale = "";
string Reg = @"src=.+\.(bmp|jpg|gif|png|)";
foreach (Match m in Regex.Matches(ImgString.ToLower(), Reg))
{
MatchVale += (m.Value).ToLower().Trim().Replace("src=",
"");
}
if (MatchVale.IndexOf(".net") != -1 ||
MatchVale.IndexOf(".com") != -1 || MatchVale.IndexOf(".org") != -1 ||
MatchVale.IndexOf(".cn") != -1 || MatchVale.IndexOf(".cc") != -1 ||
MatchVale.IndexOf(".info") != -1 || MatchVale.IndexOf(".biz") != -1 ||
MatchVale.IndexOf(".tv") != -1)
return (MatchVale);
else
return (imgHttp + MatchVale);
}
#endregion
#region 匹配页面的图片地址
/// <summary>
/// 匹配页面的图片地址
/// </summary>
/// <param name="HtmlCode">html源码</param>
/// <param name="imgHttp">要补充的http://路径信息</param>
/// <returns></returns>
public static string GetImgSrc(string HtmlCode, string imgHttp)
{
string MatchVale = "";
string Reg = @"<img.+?>";
foreach (Match m in Regex.Matches(HtmlCode.ToLower(), Reg))
{
MatchVale += GetImg((m.Value).ToLower().Trim(), imgHttp)
+ "|";
}
return MatchVale;
}
#endregion
很明显楼主的这种想法不成熟,我建议图片另外建一张表,里面存放图片的相关属性
如按照楼主的做法,我提出一下几点
1。用sql对字段content进行字符串处理,我想性能会大大的降低
2。如content中有多个<img src="***">这个标记的话,你该如何取
3。你现在是把该条记录的所有图片存放在这个字段中,我现在要取每条记录的倒数第二张图片,你又该如何取
一般如果文本字段里有图片的话,用在线编辑器就可以轻松搞定,在线编辑器有很多,你随便选一个,就是类似word一样的编辑器,在编辑器里你插入的时候它会生成<img>标签插入到表中,显示的时候也能正常显示,不要用你做额外的工作
用HTML编辑器插入,什么内容都可以插入的呀
前台不用任何处理,显示的绑定:<%#Eval("Content")%> 或者 span 的id: spanid.InnerHTML=row["Content"].ToString();