Bir sümüklü böcek [yinelenen] kaçmak ve oluşturmak için en iyi yolu

2 Cevap php

Possible Duplicate:
URL Friendly Username in PHP?

im nasılsa bir sümüklü böcek kaçmak ve oluşturmak için uygun fonksiyonları kullanarak karıştı

i kullandı:

$slug_title = mysql_real_escape_string()($mtitle);

ama birisi) (kullanmak ve urlencode kullanmak için söyledi

bir sümüklü böcek ve güvenliği için daha iyi olduğu

i SO görebileceğiniz gibi, bu ekler - kelimeler arasında:

http://stackoverflow.com/questions/941270/validating-a-slug-in-django

2 Cevap

MySQL veya URL kaçışa kullanarak gitmek için yol değildir.

Here is an article o kadar daha iyi yapar:

function toSlug($string,$space="-") {
    if (function_exists('iconv')) {
        $string = @iconv('UTF-8', 'ASCII//TRANSLIT', $string);
    }
    $string = preg_replace("/[^a-zA-Z0-9 -]/", "", $string);
    $string = strtolower($string);
    $string = str_replace(" ", $space, $string);
    return $string;
}

Bu da aksanlı karakterler için düzgün çalışır.

() mysql_real_escape_string urlencode () hem de bir sümüklü böcek oluşturmak için uygun olmayan hangi farklı bir amacı vardır.

Bir sülük özlü sayfasını tanımlayan bir clear & meaningful ifade olması gerekiyordu.

() mysql_real_escape_string özgün sorgu dizesi amacını değiştirmek tehlikeli karakterleri kaçar.

urlencode () kendi kodunu temsil 2 altıgen basamak (uzay için örneğin% 20), ardından "%" ile geçersiz URL karakterler kaçar. Bu şekilde, elde edilen dizi not nedeniyle hoş olmayan karakter dizileri, örneğin, clear & meaningful olacak http://www.domain.com/bad%20slug%20here%20%3C--

Böylece urlencode () tarafından etkilenebilecek herhangi karakterler genellikle - ile değiştirilir boşluklar dışında, ihmal edilmelidir.