Çizgi ile bir URL sümüklü böcek görüntüleniyor Sorunu

2 Cevap php

Ben gibi benim hikayeler URL'ler için çizgi ile bir sülük yaptı:

http://stackoverflow.com/questions/482636/fetching-records-with-slug-instead-of-id

Bu mermiyi oluşturmak için benim kod:

function Slugit($title) {
    $title = strip_tags($title);
    // Preserve escaped octets.
    $title = preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|', '---$1---', $title);
    // Remove percent signs that are not part of an octet.
    $title = str_replace('%', '', $title);
    // Restore octets.
    $title = preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|', '%$1', $title);


    $title = remove_accents($title);
    if (seems_utf8($title)) {
        if (function_exists('mb_strtolower')) {
            $title = mb_strtolower($title, 'UTF-8');
        }
        $title = utf8_uri_encode($title, 500);
    }

    $title = strtolower($title);
    $title = preg_replace('/&.+?;/', '', $title); // kill entities
    $title = str_replace('.', '-', $title);
    $title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
    $title = preg_replace('/\s+/', '-', $title);
    $title = preg_replace('|-+|', '-', $title);
    $title = trim($title, '-');


    return $title;
}

Eğer çizgi Gördüğünüz gibi, buraya kadar her şey gayet iyi. Ama linke tıkladığınızda, o açamıyor ve normal ve hiçbir tire ile kaydedilmiş bulunuyor gibi o benim veritabanı bulmak.

Yani tire kaldırmak için bir şey yazdı:

$string = str_replace('-', ' ', $string);

? veya . URL olduğunda ancak, o zaman gösteremez!

Orijinal URL geri almak için herhangi bir yardım?!

2 Cevap

Eğer bu gibi bir URL olduğunda:

http://stackoverflow.com/questions/2647789/problem-in-displaying-a-slug-with-dash

problem-in-displaying-a-slug-with-dash bölümü oldukça önemli değildir: just güzel:

  • Görüntülenecek
  • kullanıcıların okuma ve soru ne ait hakkında görmek için
  • arama motoru için, bir SEO mekanizmasından olarak.


What's really important, in that URL, is the 2647789 part : it's the identifier of the question in the database -- i.e. it's that part of the URL that's used to load the question.

Bu ilk kullanıcı tarafından yazdığınız ne kadar sülük dönüştürmek için gerek yoktur anlamına gelir: önemli olan tek şey her bir URL'ye verilerin tanımlayıcı geçmek ve geri verileri bulmak için kullanabilirsiniz olmasıdır.


And, if you want some kind of proof : try going to http://stackoverflow.com/questions/2647789/ without the slug : you'll see that your question loads just fine ;-)

Eğer bir sayısal kimliği var ve veritabanında kaydı tanımlamak için sadece sülük kullanmak istemiyorsanız. Sonra sadece çok veritabanında sülük depolamak ve bu sümüklü böcek ile bunu sorgulamak olabilir.