如何生成seo友好的url';什么是php?

如何生成seo友好的url';什么是php?,php,url,seo,Php,Url,Seo,我想做http://mysite.com/id255/至http://mysite.com/gora-beach-inn/ 我的php看起来像: $result = mysql_query(" SELECT id, header FROM Article "); while($data = mysql_fetch_assoc($result)){ mysql_query(" UPDATE Article SET seo = '".M

我想做
http://mysite.com/id255/
http://mysite.com/gora-beach-inn/

我的php看起来像:

$result = mysql_query("
    SELECT id, header
    FROM Article
");


while($data = mysql_fetch_assoc($result)){  
    mysql_query("
        UPDATE Article
        SET seo = '".MakeSeo($data['header'])."'
        WHERE datum = '".$data['datum']."'
    ");
}

//Convert: "åäö" to "aao", "space" to "-", "!?" to "nothing", and all to lower case.
function MakeSeo($string)
{
    ???
}
请帮助我使用MakeSoe函数

我使用moderewrite,所以我只需要帮助来生成url,这样我就可以将它们保存在我的数据库中。

您需要使用它来实现这一点,否则另一种方法是由php完成的“内部”方法,您可以执行类似以下操作:

http://mydomain.com/index.php/category/dogs
以上只是一篇GET帖子,index通过includes/mysql等处理内容加载

您需要使用来实现这一点,否则另一种方法是由php完成的“内部”方法,您可以执行类似以下操作:

http://mydomain.com/index.php/category/dogs

以上只是一篇GET帖子,index通过includes/mysql等处理内容加载

只需满足您的要求。。 给你

function makeSeo($text, $limit=75)
    {
      // replace non letter or digits by -
      $text = preg_replace('~[^\\pL\d]+~u', '-', $text);

      // trim
      $text = trim($text, '-');

      // lowercase
      $text = strtolower($text);

      // remove unwanted characters
      $text = preg_replace('~[^-\w]+~', '', $text);

      if(strlen($text) > 70) {
        $text = substr($text, 0, 70);
      } 

      if (empty($text))
      {
        //return 'n-a';
        return time();
      }

      return $text;
    }
您可以添加更多的过滤器来清理url,也可以添加更多的内容来获得唯一的url


注意:我并不是说向数据库添加url是最好的方法。您可以使用其他技术实现相同的功能,例如mod_rewrite。

来满足您的需求。。 给你

function makeSeo($text, $limit=75)
    {
      // replace non letter or digits by -
      $text = preg_replace('~[^\\pL\d]+~u', '-', $text);

      // trim
      $text = trim($text, '-');

      // lowercase
      $text = strtolower($text);

      // remove unwanted characters
      $text = preg_replace('~[^-\w]+~', '', $text);

      if(strlen($text) > 70) {
        $text = substr($text, 0, 70);
      } 

      if (empty($text))
      {
        //return 'n-a';
        return time();
      }

      return $text;
    }
您可以添加更多的过滤器来清理url,也可以添加更多的内容来获得唯一的url


注意:我并不是说向数据库添加url是最好的方法。您可以使用其他技术实现相同的功能,例如mod_rewrite。

非正则表达式和更灵活的解决方案可以通过2个数组完成。定义from和to数组中的所有字符。省略的字符将被替换为- 这是javascript函数的示例

function ToSeoFriendly(title) {
  title = title.toLowerCase();
  var generated = "";
  var from = "ãàáäâẽèéëêìíïîõòóöôùúüûñçýčšžřľňäôabcdefghijklmnopqrstuvwxyz1234567890";
  var to   = "aaaaaeeeeeiiiiooooouuuuncycszrlnaoabcdefghijklmnopqrstuvwxyz1234567890-";
  for (var i=0;i<title.length;i++){
    generated += to.substr(from.indexOf(title.substr(i,1)),1);
  }
  return generated;
}
功能对地理友好(标题){
title=title.toLowerCase();
var生成=”;
var from=“ãááä–ẽèèèèèèèèèèèèèèèèèèèèèèèè;
var to=“aaaaa eeeeeee iiioooouuncycszrlnoaabcdefghijklmnopqrstuvxyz1234567890-”;

对于(var i=0;i非正则表达式和更灵活的解决方案,可通过2个数组完成。定义from和to数组中的所有字符。省略的字符将替换为- 这是javascript函数的示例

function ToSeoFriendly(title) {
  title = title.toLowerCase();
  var generated = "";
  var from = "ãàáäâẽèéëêìíïîõòóöôùúüûñçýčšžřľňäôabcdefghijklmnopqrstuvwxyz1234567890";
  var to   = "aaaaaeeeeeiiiiooooouuuuncycszrlnaoabcdefghijklmnopqrstuvwxyz1234567890-";
  for (var i=0;i<title.length;i++){
    generated += to.substr(from.indexOf(title.substr(i,1)),1);
  }
  return generated;
}
功能对地理友好(标题){
title=title.toLowerCase();
var生成=”;
var from=“ãááä–ẽèèèèèèèèèèèèèèèèèèèèèèèè;
var to=“aaaaa eeeeeee iiioooouuncycszrlnoaabcdefghijklmnopqrstuvxyz1234567890-”;

对于(var i=0;我查看右侧的相关问题。查看右侧的相关问题。谢谢,工作正常,除了åäö之外,脚本生成“1253883725”如果
$text
包含åäö.hmm..可能是因为它将除a-z、a-z、0-9之外的任何内容转换为空。您可以尝试删除第二个pregäu匹配(//删除不需要的字符并测试)将
70
替换为
$limit
以获得工作限制谢谢,工作正常,除了åää,脚本生成“1253883725”如果
$text
包含åäö.hmm..可能是因为它将除a-z、a-z、0-9以外的任何内容转换为空。您可以尝试删除第二个preg_匹配(//删除不需要的字符并测试)将
70
替换为
$limit
以使限制生效