簡體   English   中英

如何用PHP生成SEO友好的URL?

[英]How to generate seo friendly url's with php?

我想將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,因此可以將它們保存在數據庫中。

只是回答您的要求..到這里就可以

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添加到數據庫是最好的方法。 您可以使用其他技術(例如mod_rewrite)來實現相同的功能。

您將需要使用mod_rewrite來實現此目的,否則另一種方法是php完成的“內部”方法,您將執行以下操作:

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

以上只是一個GET帖子,索引通過include / mysql等處理內容加載;

非正則表達式和更靈活的解決方案可以通過2個數組完成。 fromto數組中定義所有字符。 省略的字符將被替換為-這是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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM