Arama butonu
Bu konudaki kullanıcılar: 1 misafir
6
Cevap
296
Tıklama
0
Öne Çıkarma
PHP veri çekerken html kod hatası
M
9 yıl
Çavuş
Konu Sahibi

Merhaba arkadaşlar. Veritabanından veri çekerken şöyle bir durumla karşılaştım. Kod;

 
$icerik2 = "1<br/>2<br/>3<br/>4<br/>5<br/>6"; //Yazdırılacak örnek metin
$icerik =mb_substr($icerik2, 0, 14); //Ben ilk 14 karakterin yazdırılmasını istiyorum mesela.

<div class="icerik"><?php echo $icerik; ?></div> //Bu şekilde bir div içinde ekrana yazdıracam.


Çıktısı şöyle oluyor: <div class="icerik">1<br/>2<br/>3<</div>

Sondaki kısmı farkettiyseniz "<</div>" oluyor. Ve ekranı mahfediyor.

Tabi bazen <br</div> de oluyor. yani yazının uzunluğuna göre değişiyor. Bunu halledeceğim bir kod varsa lütfen söyleyin. Çözemedim bitürlü.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





< Bu mesaj bu kişi tarafından değiştirildi Mehmet0173 -- 13 Ekim 2016; 23:27:57 >

İ
9 yıl
Binbaşı

icerik2 değişkeninden sadece sayıları değil, <br> kodlarını da kesiyor bu kod. Eğer yazının 15. karakteri ">" ise bu, "<br</div>" olur. Sizin yazınızın son karakteri "<" olduğu için çift gözüküyor.



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.
M
9 yıl
Çavuş
Konu Sahibi

Tamam sorunu biliyorum zaten. Bu sorunu nasıl bir kodla düzelteceğimi öğrenmek istiyorum. Yani cümlenin son karaktersi "<" ie, veya "<b" ise, veya "<br" ise bu son karakterleri yazdırmasın. Sadece ondan öncekileri yazdırsın. Böylece html kod hatası oluşmaz sayfamda. Umarım bu sefer anlatabilmişimdir..



M
9 yıl
Çavuş
Konu Sahibi

PHP'den anlayan kimse yok mu koskoca forumda ya? :(


Bu mesaja 1 cevap geldi.
A
9 yıl
Yüzbaşı

Anladığım kadarı ile senin çekilen verilerin sabit değil. Bu yüzden de karışıklı oluyor. Şu şekilde bir çalışma yapalım istersen.
veritabanı yada manuel gelen verilere şu şekilde ekleme yapmalısın. <br> eklemek yerine otomatik br ekleyici kodumuzu kullanmalısın bu şekilde 3< şeklinde yarım yamalak kalmazsın. Örneğin

$cekilenveri = "1\n2\n3\n4\n5\n6";
$brekle = nl2br($cekilenveri);

şeklinde bir kullanım sağlayabilirsiniz.




Bu mesajda bahsedilenler: @Mehmet0173
M
9 yıl
Çavuş
Konu Sahibi

Ben cevap vermeyi unuttum ya k.bakmayın. Teşekkür ederim cevabınız için. kodu da daha deneyemedim zaten, yapamayınca ertelemiştim. tekrar bakarım, olmazsa dönerim yine. Teşekkür ederim tekrar.



G
9 yıl
Çavuş

Eğer gelen veri sadece br içeriyorsa önce onları replace ile temizle fakat baska html kodları da olma ihtimali varsa ozaman aksoydesign dediği de çözüm olmayacaktır her html etiketine farklı bir tanımlama veritabanını gereksiz yere şişirecektir
bu durumlarda php nin hazır fonksionlarından faydalanırız strip_tags
strip_tags: önce veriyi tüm php ve html kodlardan arındırır metin olarak verir sonra istediğimiz sayıda karakter çekeriz.
  $icerik = "1<br/>2<br/>3<br/>4 Bu şekilde bir div içinde ekrana yazdıracam<br/>5<br/>6<div>Yazdırılacak örnek metin</div>"; 
$icerik = strip_tags($icerik);
$icerik =mb_substr($icerik, 0, 14); //Ben ilk 14 karakterin yazdırılmasını istiyorum mesela.

echo strip_tags($icerik);



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.