Böyle bir işlevi var mı?
Eğer değilse, herkes bir tane var?
Ben daha sonra sitemde Bir mesaja url olarak kullanacağız çünkü kullanıcıların url dostu 'tarafından sunulan bir dizeleri yapmak gerekir.
Teşekkürler
BTW, onun PHP!
Eğer kullanıcı girişi bazı bit almak istiyorum gibi geliyor
Enter Name: ___Bob Smith_____
Ve daha sonra bir URL parçası olarak bu girişi kullanmak
http://example.com/bob-smith
Eğer peşinde olduğun buysa, sihirli sizin için yapacak hiçbir PHP işlevi yoktur. Böyle bir şey benim yaklaşım için
Bu URL güvenli böylece adını aşağı sterilize
Gerekirse, dizenin sonuna benzersiz bir veritabanı tanımlayıcı eklemek
1 numara bir regex ile oldukça kolaydır
$url = strToLower(preg_replace('%[^a-z0-9_-]%six','-',$name)); //does a-z catch unicode?
İşte Bob Smith
bob-smith
dönüşecektir.
Her dize için benzersiz bir parçasını almak sizin için önemli ise, # 2 için bazı planları ile gelip gerekir. Aşağıdaki dizeleri düşünün
Bob Smith
Bob" Smith
Her ikisi de aşağı dezenfekte olacak
Bob--Smith
Şansını bir veritabanında bu bilgiyi depolamak, yani dize birincil anahtar çalışacak ekleme konum vardır. Ayrıca URL parçası olarak birincil anahtar dahil olabilir. Örneğin, birincil anahtar varsayarak basit bir tamsayı auto_increment
.
http://example.com/27/bob-smith/
http://example.com/bob-smith_27
Orada urlencode, ama ben o aradığınız tam olarak ne olup olmadığından emin değilim
Apache çalıştıran şartıyla, yeniden yazma kullanıcı dostu URL'ler sağlar mod_rewrite, bir Apache modülü arıyoruz düşünüyorum. Yeni başlayanlar için bir rehber bulunabilir here. Bunu içine defterleri önce, host veya sunucu mod_rewrite desteklediğinden emin olun.
Eğer onlar yüzde olarak kodlanmış kelimeler değildir ve gösterileri gibi olmak ASCII olmayan karakterler olmasını istiyorsanız, Unicode kullanmak ve UTF-8 ile URL kodlamak gerekir. Yani, örneğin, yerine ISO 8859-1 kodlanmış kelime 0xC4 UTF-8 kodlanmış kelime 0xC384 kullanmak, sizin URL Ä
karakter kullanmak istiyorsanız. Fark (durum çubuğunda URL bir göz atın):
Ne istediğiniz bir wordpress sonrası sümüklü böcek gibi bir şey olabilir. Wordpress, işlev (sanitize_title_with_dashes), temelde, giriş sanitizes kodlar ve yaratır '-' ayrılmış url.
Ben ne istiyorum New Storm Hits Winter!
new-storm-hits-winter
gibi bir şey haline çevirmek için bir şey olduğuna inanıyorum.
Bu fonksiyon CodeIgniter "çalıntı" ve tam olarak bunu yapıyor edilmektedir:
/**
* Create URL Title
*
* Takes a "title" string as input and creates a
* human-friendly URL string with either a dash
* or an underscore as the word separator.
*
* @access public
* @param string the string
* @param string the separator: dash, or underscore
* @return string
*/
if ( ! function_exists('url_title'))
{
function url_title($str, $separator = 'dash', $lowercase = FALSE)
{
if ($separator == 'dash')
{
$search = '_';
$replace = '-';
}
else
{
$search = '-';
$replace = '_';
}
$trans = array(
'&\#\d+?;' => '',
'&\S+?;' => '',
'\s+' => $replace,
'[^a-z0-9\-\._]' => '',
$replace.'+' => $replace,
$replace.'$' => $replace,
'^'.$replace => $replace,
'\.+$' => ''
);
$str = strip_tags($str);
foreach ($trans as $key => $val)
{
$str = preg_replace("#".$key."#i", $val, $str);
}
if ($lowercase === TRUE)
{
$str = strtolower($str);
}
return trim(stripslashes($str));
}
}