Php ile seo dostu URL nasıl oluşturulur?

2 Cevap php

I http://mysite.com/id255/ http://mysite.com/gora-beach-inn/ yapmak istiyorum.

Benim php gibi görünüyor:

$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 fonksiyonu ile bana yardımcı olun.

Ben moderewrite kullanmak, bu yüzden sadece url oluşturmak için yardıma ihtiyacım var, bu yüzden benim veritabanında saklayabilirsiniz.

2 Cevap

To just answer your requirement .. here you go ..

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;
    }

Sen url temizlemek için daha fazla filtre ekleyebilir ve bu URL benzersiz almak için biraz daha fazla şeyler eklemek olabilir.

Not: Ben veritabanına url ekleyerek en iyi yolu olduğunu söylemiyorum. Örneğin, mod_rewrite, diğer teknikleri kullanarak işlevsellik aynı tür elde edebiliriz.

Aksi takdirde diğer yaklaşım benzer bir şey yapacağını php, tarafından yapılan 'iç' yöntemi, mod_rewrite bunu başarmak için kullanmak gerekir:

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

Yukarıda sadece bir GET post, ve dizin includes / mysql vs ile içerik yükleme kolları;