lostyazilim
tr.link

Php linkteki boşlukları doldurma

5 Mesajlar 1.766 Okunma
acebozum
tr.link

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)
Merhaba, linkte boşluklar otomatik olarak Isim%20Soyisim şeklinde %20 ile doluyor. Bunu nasıl alt tire (_) yapabilirim?
 

 

elektronikssl
webimgo

BTPHP BTPHP WM Aracı Kullanıcı
  • Üyelik 11.10.2016
  • Yaş/Cinsiyet 32 / E
  • Meslek PHP Yazılım
  • Konum Diğer
  • Ad Soyad A** K**
  • Mesajlar 103
  • Beğeniler 30 / 29
  • Ticaret 2, (%100)
Seflink fonksiyonu kullanırsan düzelir..

Örnek ;

http://www.erbilen.net/php-sef-link-fonksiyonu/
 

 

hk1337 hk1337 WM Aracı Kullanıcı
  • Üyelik 01.07.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek -
  • Konum Ankara
  • Ad Soyad H** K**
  • Mesajlar 284
  • Beğeniler 48 / 17
  • Ticaret 3, (%100)
İnceledim ama boşluk karakterini nasıl değiştireceğime dair bir bilgi edinemedim :)
 

 

kozmo kozmo WM Aracı Kullanıcı
  • Üyelik 30.04.2014
  • Yaş/Cinsiyet 37 / E
  • Meslek Satınalma Uzmanı
  • Konum Manisa
  • Ad Soyad S** B**
  • Mesajlar 106
  • Beğeniler 24 / 14
  • Ticaret 0, (%0)

hk1337 adlı üyeden alıntı

İnceledim ama boşluk karakterini nasıl değiştireceğime dair bir bilgi edinemedim :)




// seo link fonksiyonu
function SeoYap($baslik){
$onceki = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', ' ', '.', );
$sonraki = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', '_', '');
$yeni = str_replace($onceki, $sonraki, $baslik);
$yeni = preg_replace("@[^A-Za-z0-9\.\-_]@i", '', $yeni);
$yeni = strtolower($yeni);
return $yeni;
}
?>



kırmızı ile işaretlediklerim senin işini görür

echo SeoYap($baslik); ile verileri dökerek deneme yap istersen ,
 

 

wmaraci
wmaraci

Nanoripper Nanoripper Hello World! Kullanıcı
  • Üyelik 25.10.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Computer Science
  • Konum İstanbul Anadolu
  • Ad Soyad Y** A**
  • Mesajlar 71
  • Beğeniler 1 / 19
  • Ticaret 0, (%0)
Bir önceki posttaki kod işine yarar ancak amacın sadece boşlukları "_" ile değiştirmek ise o fonksiyonu kullanman boş yere kod kalabalığı demektir.

Bunun için replace fonksiyonunu kullanabilirsin

$name = preg_replace('/\s+/', '_', $name);

$name = str_replace(' ', '_', $name);

İkisi de işini görecektir ancak ilkini kullanmanı öneririm. Ad ve soyad arasında yanlışlıkla veya herhangi başka bir sebeple birden fazla boşluk konması durumunda str_replace fonksiyonu Ad__Soyad gibi bir sonuç verirken, preg_replace fonksiyonu boşluk sayısı farketmeksizin Ad_Soyad şeklinde çıktı verecektir.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al