網頁超連結路徑置換

By Allen Kuo, 建立日期:2008/03/14 15:00
判別站台內之超連結,而這些超連結有不同的寫法,有些是絕對路徑有些則是相對路徑,然而如何置換這些路徑?
    加入書籤: 收進你的MyShare個人書籤

 

轉載自 : 包仔低私房菜

包仔最近正好在玩網頁串流,其中有一個步驟剛好要判別站台內之超連結,而這些超連結有不同的寫法,有些是絕對路徑有些則是相對路徑,然而如何置換這些路徑且看包仔之分解。

  1. protected void Button1_Click(object sender, EventArgs e)  
  2. {  
  3. if (this.TextBox1.Text.Trim() != "")  
  4. {  
  5. string baseURL = "http://www.test.com.tw";  
  6. //string FullPath = "http://www.test.com.tw/ch/tset.aspx";  
  7. Response.Write(TransLink(baseURL,this.TextBox1.Text.Trim(),this.TextBox2.Text.Trim()));  
  8. }  
  9. }  
  10. private string TransLink(string baseURL, string LinkPath, string FullPath)  
  11. {  
  12. string AfterTransPath = "";  
  13. if (FullPath != "")  
  14. {  
  15. int PathIndex = FullPath.LastIndexOf("/");  
  16. string LastPath = FullPath.Substring(PathIndex + 1);  
  17. string RootPath = FullPath.Replace(LastPath, "");  
  18. AfterTransPath = RootPath + LinkPath;  
  19. }  
  20. else  
  21. {  
  22. if (LinkPath.Substring(0, 1) == "/")//判斷為內部網頁則加入完整網址  
  23. {  
  24. LinkPath = baseURL + LinkPath;  
  25. }  
  26. else if (LinkPath.StartsWith("../"))//判斷為內部網頁則加入完整網址  
  27. {  
  28. //LinkPath = Regex.Match(LinkPath, "(?i)(?/.+)").Groups["tag"].ToString();  
  29. LinkPath = Regex.Split(LinkPath, "(?i)(?(^[\\.\\/]+\\/))").GetValue(3).ToString();  
  30. LinkPath = baseURL + "/" + LinkPath;  
  31. }  
  32. else if (LinkPath.IndexOf(":") < linkpath =" Regex.Match(LinkPath,">http://.+/)").Length.ToString();  
  33. }  
  34. AfterTransPath = LinkPath;  
  35. }  
  36. return AfterTransPath;  
  37. }  
  38. }  

此方法可配合網頁串流遞迴掃描進而抓取整個站台的超連結

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kingjoy1235 的頭像
    kingjoy1235

    King的幸福國度

    kingjoy1235 發表在 痞客邦 留言(0) 人氣()