lostyazilim
tr.link

PHP Sef link yapmak istiyorum ..

5 Mesajlar 985 Okunma
acebozum
tr.link

GokhanKara GokhanKara Whatsappla.com Kullanıcı
  • Üyelik 17.12.2011
  • Yaş/Cinsiyet 33 / E
  • Meslek Grafiker
  • Konum Ankara
  • Ad Soyad G** K**
  • Mesajlar 1421
  • Beğeniler 760 / 545
  • Ticaret 21, (%100)
Merhaba arkadaşlar.
Bir proje ile 3 gün önce PHP öğrenmeye başladım. İstediğim tüm işlemleri tamamladım şu anda sadece sef link yapmam gerekiyor.

Bir çok kaynak buldum, kodlar buldum fakat anlayamıyorum.
Bir arkadaşın bana yol göstermesi gerekiyor.

Rica ediyorum, bilgisi olan arkadaşlar yol gösterebilirse çok memnun olurum.
Teşekkürler, saygılarımla ..
 

 

Profesyonel Tasarım & Wordpress Tema / Eklenti hizmeti - http://whatsappla.com/@gokhankaraofficial
elektronikssl
webimgo

bozbey38 bozbey38 Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 06.02.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Kayseri
  • Ad Soyad M** Y**
  • Mesajlar 78
  • Beğeniler 12 / 16
  • Ticaret 3, (%100)
bende öğrenmek istiyorum ufak ufak bence acemice başladım.
 

 

NETEOR NETEOR neteor.com.tr Kullanıcı
  • Üyelik 30.01.2013
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılımcı
  • Konum Ankara
  • Ad Soyad A** D**
  • Mesajlar 1103
  • Beğeniler 630 / 380
  • Ticaret 14, (%100)
yardımcı olayım hocam. buyrun
 

 

MuhammedEminoglu MuhammedEminoglu Alter Sözlük Kullanıcı
  • Üyelik 14.02.2014
  • Yaş/Cinsiyet 38 / E
  • Meslek Mühendis
  • Konum Konya
  • Ad Soyad M** E**
  • Mesajlar 89
  • Beğeniler 42 / 40
  • Ticaret 7, (%100)
Hemen örnek üzerinde anlatalım Tayfun Erbilen kardeşimizin kodları üzerinden yürüyelim


/**
* @param $string
* @return mixed
*/
function permalink($string)
{
$find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
$replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp');
$string = strtolower(str_replace($find, $replace, $string));
$string = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $string);
$string = trim(preg_replace('/\s+/', ' ', $string));
$string = str_replace(' ', '-', $string);
return $string;
}

// Kullanımı
$deger = "Bu Türkçe Bir Yazıdır";
echo permalink($deger);


şimdi function permalink fonksiyonunu inceleyelim. Bu fonksiyon $string parametresini almış. Yani bir değeri kontrol ederken kontrol edeceğimiz değer string fonksiyonuna atıyoruz.

fonksiyonun içini inceleyelim.

$find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
diye değişken oluşturmuş, array yani dizi olarak belirlemiş ve dizinin elemanlarını atamış.

$replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp'); değişkenine de alternatif karakterler atanmış. Tabii buraya kadar hiçbir işlem yok henüz, sadece değişkenleri belirledik.

$string = strtolower(str_replace($find, $replace, $string)); değişkeni üzerinde strtolower fonksiyonu ana paranteze alınmış. Yani parantez içindeki değerlerin sonucuna bu fonksiyon uygulanacak. Peki bu fonksiyon ne yapar? Çok basit, bütün karakterleri küçük harfe çevirir. Ancak fonksiyonumuz henüz bitmedi, bir de parantez içerisinde str_replace fonksiyonu bulunuyor. str_replace 3 ayrı değişken alır. şöyle kullanılır.

str_replace("değişecek elemanlar", "yerine konacak elemanlar", "sonucun atanacağı değer"

şimdi biz ne yapıyoruz? değişecek elemana $find değişkenini atıyoruz, daha sonra yerine konacak elemanlar yerine $replace değişkenini atıyoruz. En son olarak değiştirilmiş değeri elimizde tutmak için $string değerine atıyoruz. yani bu satırda örnek olarak büyük Ç harfini küçük c harfine çevirmiş oluyoruz. Ancak işlemimiz devam ediyor.

şimdi şu satıra geldik
$string = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $string);

burada şunu sakın unutma. $string değerin artık düzenlemiş bir değer, yani örneğin büyük Ç harfi küçük c'ye çevrildi. Ancak bu sefer de preg_replace ile işlem yapacağız. preg_replace fonksiyonu özel karakterleri bulur. ve şu şekilde kullanılır.

preg_replace ("bulunacak özel karakterler", "bulunan özel karakterlerin değişeceği karakter", "sonucun atanacağı değişken")

Bu yukarıda özel karakterleri bulup " " boşluk ile değiştiriyoruz. ve string değerine atamış oluyoruz. Böylece türkçe karakter sorununu, büyük harf sorununu ve özel karakter sorununu hallettik. şimdi devam ediyoruz.

$string = str_replace(' ', '-', $string); bu satırda çok basit bir işlem yapıyoruz. Hani bir önceki satırda özel karakterlerin yerine boşluk koyduk ya, bu satırda da boşlukların yerine tire "-" işareti koyuyoruz. Neden? çünkü link yapısında boşluk olmaz :)

return $string; ifadesiyle de fonksiyonumuzu $string cinsinden döndürüyoruz. Yani string değerini birçok işleme tabi tuttuk ve tekrar derlenmiş halini fonksiyonumuzdan çıkarıyoruz.

Sen buraya bir string değer gönderdiğinde bu işlemlerden geçecek ve sağlıklı bir link yapısı oluşturabileceksin.

Umarım açıklayıcı olabilmişimdir.
GokhanKara berrynetwork

kişi bu mesajı beğendi.

wmaraci
wmaraci

GokhanKara GokhanKara Whatsappla.com Kullanıcı
  • Üyelik 17.12.2011
  • Yaş/Cinsiyet 33 / E
  • Meslek Grafiker
  • Konum Ankara
  • Ad Soyad G** K**
  • Mesajlar 1421
  • Beğeniler 760 / 545
  • Ticaret 21, (%100)

MuhammedEminoğlu adlı üyeden alıntı

Hemen örnek üzerinde anlatalım Tayfun Erbilen kardeşimizin kodları üzerinden yürüyelim


/**
* @param $string
* @return mixed
*/
function permalink($string)
{
$find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
$replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp');
$string = strtolower(str_replace($find, $replace, $string));
$string = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $string);
$string = trim(preg_replace('/\s+/', ' ', $string));
$string = str_replace(' ', '-', $string);
return $string;
}

// Kullanımı
$deger = "Bu Türkçe Bir Yazıdır";
echo permalink($deger);


şimdi function permalink fonksiyonunu inceleyelim. Bu fonksiyon $string parametresini almış. Yani bir değeri kontrol ederken kontrol edeceğimiz değer string fonksiyonuna atıyoruz.

fonksiyonun içini inceleyelim.

$find = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı', '+', '#');
diye değişken oluşturmuş, array yani dizi olarak belirlemiş ve dizinin elemanlarını atamış.

$replace = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i', 'plus', 'sharp'); değişkenine de alternatif karakterler atanmış. Tabii buraya kadar hiçbir işlem yok henüz, sadece değişkenleri belirledik.

$string = strtolower(str_replace($find, $replace, $string)); değişkeni üzerinde strtolower fonksiyonu ana paranteze alınmış. Yani parantez içindeki değerlerin sonucuna bu fonksiyon uygulanacak. Peki bu fonksiyon ne yapar? Çok basit, bütün karakterleri küçük harfe çevirir. Ancak fonksiyonumuz henüz bitmedi, bir de parantez içerisinde str_replace fonksiyonu bulunuyor. str_replace 3 ayrı değişken alır. şöyle kullanılır.

str_replace("değişecek elemanlar", "yerine konacak elemanlar", "sonucun atanacağı değer"

şimdi biz ne yapıyoruz? değişecek elemana $find değişkenini atıyoruz, daha sonra yerine konacak elemanlar yerine $replace değişkenini atıyoruz. En son olarak değiştirilmiş değeri elimizde tutmak için $string değerine atıyoruz. yani bu satırda örnek olarak büyük Ç harfini küçük c harfine çevirmiş oluyoruz. Ancak işlemimiz devam ediyor.

şimdi şu satıra geldik
$string = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $string);

burada şunu sakın unutma. $string değerin artık düzenlemiş bir değer, yani örneğin büyük Ç harfi küçük c'ye çevrildi. Ancak bu sefer de preg_replace ile işlem yapacağız. preg_replace fonksiyonu özel karakterleri bulur. ve şu şekilde kullanılır.

preg_replace ("bulunacak özel karakterler", "bulunan özel karakterlerin değişeceği karakter", "sonucun atanacağı değişken")

Bu yukarıda özel karakterleri bulup " " boşluk ile değiştiriyoruz. ve string değerine atamış oluyoruz. Böylece türkçe karakter sorununu, büyük harf sorununu ve özel karakter sorununu hallettik. şimdi devam ediyoruz.

$string = str_replace(' ', '-', $string); bu satırda çok basit bir işlem yapıyoruz. Hani bir önceki satırda özel karakterlerin yerine boşluk koyduk ya, bu satırda da boşlukların yerine tire "-" işareti koyuyoruz. Neden? çünkü link yapısında boşluk olmaz :)

return $string; ifadesiyle de fonksiyonumuzu $string cinsinden döndürüyoruz. Yani string değerini birçok işleme tabi tuttuk ve tekrar derlenmiş halini fonksiyonumuzdan çıkarıyoruz.

Sen buraya bir string değer gönderdiğinde bu işlemlerden geçecek ve sağlıklı bir link yapısı oluşturabileceksin.

Umarım açıklayıcı olabilmişimdir.


Çok teşekkür ederim buradaki kodları kullandım ve bir arkadaş sağolsun yardımcı oldu sorunu çözdüm.

Elinize sağlık, saygılarımla.
 

 

Profesyonel Tasarım & Wordpress Tema / Eklenti hizmeti - http://whatsappla.com/@gokhankaraofficial
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al