lostyazilim

Php substr kullanımı. Yardımcı olabilir misiniz?

8 Mesajlar 827 Okunma
lstbozum
wmaraci reklam

oguzhan oguzhan WM Aracı Kullanıcı
  • Üyelik 22.06.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Adana
  • Ad Soyad O** T**
  • Mesajlar 1201
  • Beğeniler 310 / 296
  • Ticaret 2, (%100)
rss ile çekme işlemi yapıyorum ve kod çalışmakta, her şey yolunda. Kodum bu :
function rssoku()
{
$feed=file_get_contents("http://localhost/syndication.php");
$xml= new SimpleXMLElement($feed);
$sayac="1";
// Okuma s?n?r?
$limit="4";
echo "
    ";
    foreach ($xml -> channel -> item as $veri){
    if ($sayac <= $limit){
    $link = $veri -> link;
    $title= $veri -> title;
    $title=substr($title,0,44);
    $title = $title . '...';
    echo "
  • $title";

    }
    $sayac++;
    }
    echo "
";
}
rssoku();
?>


çektiğim title 44 karakterden fazla olunca üç nokta koyuyor "..." ama 44 karakterden az olsada koyuyor. yani 20 karakterlik title bitiyor normal şekilde yinede üç nokta geliyor. sadece 44 karakterden fazlasına üç nokta nasıl koyabilirim? php bilgim fazla değil böyle basit bir şeyi bile yapamıyorum :D
 

 

wmaraci
reklam

ntka ntka https://ntka.org Kullanıcı
  • Üyelik 22.01.2012
  • Yaş/Cinsiyet 41 / E
  • Meslek Agent
  • Konum İstanbul Anadolu
  • Ad Soyad N** T**
  • Mesajlar 2762
  • Beğeniler 811 / 810
  • Ticaret 262, (%100)
bunu kaldır nokta koymasın $title = $title . '...'; yada tek nokta yap.

Ek Olarak: Bunuda $title=substr($title,0,44); bu şekilde değiştir.

$title=substr($title,0,44)."..."; hepsi bu kadar.

Ek Olarak: substr yerine mb_substr kullan
oguzhan

kişi bu mesajı beğendi.

dijitalsite.com.tr ister al / ister sat / yeni üyelere 20 tl bakiye hediye

webtegez webtegez İstersen Milyoner Olursun Kullanıcı
  • Üyelik 04.11.2013
  • Yaş/Cinsiyet 29 / E
  • Meslek Elektronik Teknikeri - PHP'ci
  • Konum İstanbul Anadolu
  • Ad Soyad B** P**
  • Mesajlar 329
  • Beğeniler 100 / 99
  • Ticaret 0, (%0)
arkadaşım if fonksiyonu ile $title değişkeninindeki karakterleri say. eğer 44 den fazla ise üç nokta (...) koyarak yapabilirsin.

Örnek kod:

if(strlen($title) > 44){ // Eğer title değişkenindeki yazı 44 karakterden büyükse üç nokta koy
echo mb_substr($title, 0, 44, 'UTF8').'...';
}else{ // Eğer 44 karakterinden küçükse olduğu gibi yayınla
echo $title;
}


gibi yapabilirsin.
 

 

Batuhan P. | SoftVore.com

oguzhan oguzhan WM Aracı Kullanıcı
  • Üyelik 22.06.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Adana
  • Ad Soyad O** T**
  • Mesajlar 1201
  • Beğeniler 310 / 296
  • Ticaret 2, (%100)
webtegez hocam sağolun siz yorum atmadan 2dk önce aynısını buldum :D
 

 

wmaraci
wmaraci

webtegez webtegez İstersen Milyoner Olursun Kullanıcı
  • Üyelik 04.11.2013
  • Yaş/Cinsiyet 29 / E
  • Meslek Elektronik Teknikeri - PHP'ci
  • Konum İstanbul Anadolu
  • Ad Soyad B** P**
  • Mesajlar 329
  • Beğeniler 100 / 99
  • Ticaret 0, (%0)
ne demek sorununu çözdüğüne sevindim :)
oguzhan

kişi bu mesajı beğendi.

Batuhan P. | SoftVore.com

ntka ntka https://ntka.org Kullanıcı
  • Üyelik 22.01.2012
  • Yaş/Cinsiyet 41 / E
  • Meslek Agent
  • Konum İstanbul Anadolu
  • Ad Soyad N** T**
  • Mesajlar 2762
  • Beğeniler 811 / 810
  • Ticaret 262, (%100)
bu kod işini görmedimi $title=mb_substr($title,0,44)."..."; hepsi bu kadar.
ben bunu kullanıyorum devamlı bir sıkıntı yok.

fazladan kod yazmaya gerek yok tabi alternatifler değerlidir.
 

 

dijitalsite.com.tr ister al / ister sat / yeni üyelere 20 tl bakiye hediye

oguzhan oguzhan WM Aracı Kullanıcı
  • Üyelik 22.06.2014
  • Yaş/Cinsiyet 29 / E
  • Meslek Öğrenci
  • Konum Adana
  • Ad Soyad O** T**
  • Mesajlar 1201
  • Beğeniler 310 / 296
  • Ticaret 2, (%100)
ntka burdan yorum beklerken internetten araştırdım çözümünü buldum hocam webtegez arkadaşın yazdığı gibi bi kod. sağolun yinede ilginiz için.
 

 

brkrtp brkrtp Mobile App Developer Kullanıcı
  • Üyelik 24.08.2013
  • Yaş/Cinsiyet 31 / E
  • Meslek Mobile App Developer
  • Konum İstanbul Anadolu
  • Ad Soyad B** K**
  • Mesajlar 964
  • Beğeniler 269 / 251
  • Ticaret 31, (%97)
Cevabı bulmanıza sevindim ve konuya bir katkım olmak istedim;

Yazdığım kod daha dinamiktir ve son 3 karakteri siler.
$yeniveri=mb_substr($title, 0, strlen($title)-3, 'UTF8');
Daha detaylaştırmak istersek.

if(mb_substr($title, strlen($title)-3, strlen($title), 'UTF8')=="..."){
$yeniveri=mb_substr($title, 0, strlen($title)-3, 'UTF8');
}

Bu yazdığımda $title değişkeninin. son üç karakteri üç nokta ise siler.
 

 

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