C\#문장 에 체인 을 추가 하 는 방법 을 실현 합 니 다.
1.독자 에 게 유리 하 다
제 가 내부 체인 글 을 좋아 하 는 최초의 동 기 는 독자 가 제 블 로그 에서 더 좋 은 읽 기 체험 을 하고 더 많은 가 치 를 얻 도록 하 는 것 입 니 다.만약 에 제 독자 가 제 글 을 방문 하면 그 가 필요 로 하 는 답 에 대답 할 뿐만 아니 라 더 많은 관련 내용 의 정 보 를 제공 하여 그들 로 하여 금 더 많은 관련 주제 에서 읽 을 수 있 게 한다 면 그들 은 조만간 제 블 로 그 를 좋아 하고 만족 시 킬 것 입 니 다.독 자 를 만족 시 키 는 것 이 우리 의 목표 이다.독 자 는 그들 이 만족 하면 보통 다시 방문 하고 그들의 친구 와 나눈다.
2.검색엔진 최적화(SEO)
또 하나의 블 로그 가 서로 글 을 연결 하 는 중요 한 이 유 는 검색엔진 이 블 로그 의 링크 를 볼 때 내용 을 찾 을 수 있 을 뿐만 아니 라 블 로그 색인 을 만 들 고 블 로그 콘 텐 츠 의 순 위 를 높이 는 데 도 유리 하기 때문이다.다른 외부 블 로그 에서 만들어 진 링크 가치 가 가장 높 고 검색엔진 의 순 위 를 높 일 수 있 습 니 다.내부 체인 은 효과 가 좋 지 않 지만 순위 에 도 도움 이 됩 니 다.
3.페이지 조회 수 증가
글 에서 링크 를 추가 하면 독자 가 다른 페이지 의 내용 을 방문 하 는 기 회 를 높 일 수 있 습 니 다.이것 은 많은 장점 을 가 져 옵 니 다.먼저 더 많은 방문 자 를 얻 는 데 도움 을 줄 수 있 습 니 다.만약 에 특정한 CPM(방문 횟수 에 따라 비용 을 받 습 니 다)광 고 를 실행 하고 있다 면 이것 은 매우 유익 합 니 다.그 다음 에 대량의 내부 체인 은 당신 의 블 로그 방문 자 에 게 블 로그 내용 이 풍부 한 인상 을 주 었 습 니 다.나 는 누군가가 당신 의 블 로그 에서 한 페이지 이상 의 페이지 를 보 았 을 때 그들 은 그것 을 기억 하고 구독 하 며 평론 하 며 항상 충실 한 독자 가 되 는 것 을 발견 했다.
이 세 가지 장점 은 뚜렷 한 역할 을 하지 않 는 것 처럼 보이 지만 많은 내용 을 가지 고 있 을 때 가 져 올 수 있 는 장점 은 가늠 할 수 없다.그래서 블 로 그 를 만 들 때 부터 내부 체인 부터 사이트 안의 다른 글 까지 구축 하 는 것 을 권장 합 니 다.이런 내부 체인 이 쌓 인 장점 은 매우 뚜렷 한 장점 을 가 져 올 것 입 니 다.
물론 더 좋 은 점 이 있 습 니 다.바 이 두 가 알 고 있 습 니 다.말 하면 서 약간 주제 에서 벗 어 났 습 니 다.우 리 는 주로 C\#로 이 기능 을 어떻게 실현 하 는 지,말 이 많 지 않 습 니 다.건어물 에 올 라 갑 니 다!
첫 번 째 방법:(string src 는 텍스트 문 자 를 가리 키 며,IList
private string keyAddUrl(string src, IList<KeyWord> keys)
{
Regex reg = new Regex(@"(?i)(?:^|(?<!<a\b(?>[^<>]*))>)(?>[^<>]*)(?:<|$)");
int length = 0;
string temp = string.Empty;
return reg.Replace(src, delegate (Match m)
{
temp = m.Value;
length = temp.Length;
for (int i = 0; i < keys.Count; i++)
{
string keyWordName = Regex.Escape(keys[i].KeyName);
string keyWordUrl = Regex.Escape(keys[i].PCUrl);
temp = Regex.Replace(temp, @"(?is)^((?:(?:(?!" + keyWordName + @"|</?a\b).)*<a\b(?:(?!</?a\b).)*</a>)*(?:(?!" + keyWordName +
@"|</?a\b).)*)(?<tag>" + keyWordName + @")",
@"$1<a href=""" rel="external nofollow" + keyWordUrl + @""" target=""_blank"" title=""${tag}"">${tag}</a>");
if (length != temp.Length)
{
keys.Remove(keys[i]);
}
length = temp.Length;
}
return temp;
});
}
두 번 째 방법:(이것 은 내 가 생각 할 수 있 는 방법 이다)
/// <summary>
/// ,
/// </summary>
/// <param name="content"> </param>
/// <param name="type"> " "</param>
/// <returns></returns>
[HttpPost]
[ValidateInput(false)]
public async Task<ActionResult> ContentReplace(string content, string type)
{
try
{
if (type == "edit")
{
content = WebHelper.ReplaceStrHref(content);
}
if (string.IsNullOrEmpty(content))
{
return Content(" ");
}
var list = await bll.GetAllList();
if (list != null)
{
#region
//
Regex reg = null;
int n = -1;
Dictionary<string, string> dic = new Dictionary<string, string>();
for (int i = 0; i < list.Count; i++)
{
if (Regex.Match(content, list[i].KeyName).Success)
{
string pattern = $"<a href=\"{list[i].PCUrl}\" target=\"_blank\">{list[i].KeyName}</a>";
reg = new Regex(list[i].KeyName);
content = reg.Replace(content, pattern, 1);
if (Regex.Match(content, pattern).Success)
{
// , (dic), 。
reg = new Regex(pattern);
n++;
content = reg.Replace(content, "{" + n + "}", 1);
dic.Add("{" + n + "}", pattern);
}
}
}
// format
if (dic.Count != 0)
{
int m = -1;
foreach (string key in dic.Keys)
{
m++;
if (content.Contains("{" + m + "}"))
{
content = content.Replace("{" + m + "}", dic[key]);
}
}
}
#endregion
content = WebHelper.RemoveStrImgAlt(content);
return Content(content);
}
else
{
throw new Exception(" , ");
}
}
catch (Exception ex)
{
throw ex;
}
}
여기에 도 웹 헬 퍼 의 두 가지 방법 이 붙 어 있 습 니 다.(역할 방법 에 대한 설명 이 있 습 니 다)
/// <summary>
/// a
/// </summary>
public static string ReplaceStrHref(string content)
{
var r = new Regex(@"<a\s+(?:(?!</a>).)*?>|</a>", RegexOptions.IgnoreCase);
Match m;
for (m = r.Match(content); m.Success; m = m.NextMatch())
{
content = content.Replace(m.Groups[0].ToString(), "");
}
return content;
}
/// <summary>
/// Img Alt
/// </summary>
public static string RemoveStrImgAlt(string content)
{
Regex rg2 = new Regex("(?<=alt=\"<a[^<]*)</a>\"");
if (rg2.Match(content).Success)
{
content = rg2.Replace(content, "");
}
Regex rg = new Regex("(?<=alt=\")<a href=\"[^>]*>");
if (rg.Match(content).Success)
{
content = rg.Replace(content, "");
}
return content;
}
총결산위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 C\#문장 에 내부 사슬 을 추가 하 는 방법 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.만약 에 궁금 한 점 이 있 으 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 제때에 여러분 에 게 답 할 것 입 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.