Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SEO标题制作功能?_C#_Regex_Function_Seo - Fatal编程技术网

C# SEO标题制作功能?

C# SEO标题制作功能?,c#,regex,function,seo,C#,Regex,Function,Seo,我创建了一个函数,可以将任何字符串转换为制表符分隔的字符串 What's new in ASP.NET 4.0 然后将上述标题转换为以下内容: what-s-new-in-asp-net-4-0 我用这个来做我的网址的搜索引擎优化。但我不确定它是否在所有情况下都能正常工作。到目前为止,我已经在我的数据库中的大约1000条记录上测试了这个功能,它对所有标题都很好。Guyz请检查此功能,并让我知道此功能是否可能失败,如果此功能可能失败,请告诉我可以在我的应用程序中使用的正确功能 public s

我创建了一个函数,可以将任何字符串转换为制表符分隔的字符串

What's new in ASP.NET 4.0
然后将上述标题转换为以下内容:

what-s-new-in-asp-net-4-0
我用这个来做我的网址的搜索引擎优化。但我不确定它是否在所有情况下都能正常工作。到目前为止,我已经在我的数据库中的大约1000条记录上测试了这个功能,它对所有标题都很好。Guyz请检查此功能,并让我知道此功能是否可能失败,如果此功能可能失败,请告诉我可以在我的应用程序中使用的正确功能

public string SEO_makeTitle(object objTitle)
    {
        string strTitle = Convert.ToString(objTitle);

        strTitle = Regex.Replace(strTitle.Trim(), @"\W", " "); //replace special chars
        strTitle = Regex.Replace(strTitle.Trim(), @"\s{2,}", " "); //replace double space
        strTitle = strTitle.Trim().Replace(" ", "-").ToLower();

        return strTitle; //return - delimited title
    }

<谢谢>

> P>你可能想考虑口音会是什么样子。您正在替换“特殊”字符,但我怀疑这是否包括非ASCII字母

我会先尝试将重音字符转换为非重音字符。如果你知道诀窍的话,在C中有一种相对简单的方法可以做到这一点:

 static string RemoveAccents (string input) 
 { 
     string normalized = input.Normalize(NormalizationForm.FormKD); 
     Encoding removal = Encoding.GetEncoding 
         (Encoding.ASCII.CodePage, 
          new EncoderReplacementFallback(""), 
          new DecoderReplacementFallback("")); 
     byte[] bytes = removal.GetBytes(normalized); 
     return Encoding.ASCII.GetString(bytes); 
 }

您可能还希望显式使用
ToLower(CultureInfo.InvariantCulture)
,以避免在土耳其运行代码时出现问题。这可能不是问题,如果你运行TLoWER在运行<代码> RevivAccess < /Cord>,当然可以。

< P>你可能想考虑重音会是什么样子。您正在替换“特殊”字符,但我怀疑这是否包括非ASCII字母

我会先尝试将重音字符转换为非重音字符。如果你知道诀窍的话,在C中有一种相对简单的方法可以做到这一点:

 static string RemoveAccents (string input) 
 { 
     string normalized = input.Normalize(NormalizationForm.FormKD); 
     Encoding removal = Encoding.GetEncoding 
         (Encoding.ASCII.CodePage, 
          new EncoderReplacementFallback(""), 
          new DecoderReplacementFallback("")); 
     byte[] bytes = removal.GetBytes(normalized); 
     return Encoding.ASCII.GetString(bytes); 
 }

您可能还希望显式使用
ToLower(CultureInfo.InvariantCulture)
,以避免在土耳其运行代码时出现问题。诚然,如果在运行
RemoveAccents
之前运行ToLower,这可能不会是一个问题。

是的,我怀疑在不同语言的特殊字符情况下,它可能会失败。像汉语、印地语、阿拉伯语等。。。。。但若我只使用英文URL(ASCII),那个么我认为ma函数可以很好地工作……即使是英语中使用的单词有时也会带有重音。(例如,咖啡馆)哦,你可能想考虑两个条目将被映射到同一个URL的可能性-当然也包括URL中的一些独特的标识符(像这样)。这意味着我必须考虑口音,好吧。是的,我正在制作URL,是的,我怀疑它可能会在不同语言的特殊字符的情况下失败。像汉语、印地语、阿拉伯语等。。。。。但若我只使用英文URL(ASCII),那个么我认为ma函数可以很好地工作……即使是英语中使用的单词有时也会带有重音。(例如,咖啡馆)哦,你可能想考虑两个条目将被映射到同一个URL的可能性-当然也包括URL中的一些独特的标识符(像这样)。这意味着我必须考虑口音,好吧。是的,我正在制作URL,就像这样,