• 18-06-2010, 23:03:48
    #1
    Anasayfaya veritabanından alınan uzun bir metni örneğin 50 karaktere sınırlayarak yazdırdığımızda, eğer yazı eğikse o metinden itibaren bütün sayfa eğik oluyor.

    Şu şekilde tanımlı olan değişken:

    $text = '<b>ajslşdfkajşsdlfka';
    Nasıl bir fonksiyonla otomatik olarak şu hale gelir:

    $text = '<b>asdjalşsdkfjasld</b>';
    Ve bu etiketler sadece <b> değil, her şey olabiliyor. O yüzden evrensel bir şey olması lazım.
  • 19-06-2010, 00:41:30
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Aslında bu tür durumlarda en iyisi strip_tags ile html etiketleri tamamen temizlemek. Çünkü <a href... vs. gibi uzun bir etiket de gelebilir. Ama illa bu şekilde yapacaksan:

    $text = '<b>ajslşdfkajşsdlfka';
    if(preg_match('/<[^>]+\>/si',$text,$al)){
      echo $text.str_replace('<','</',$al[0]);
    }
  • 19-06-2010, 00:46:33
    #3
    Hocam bu işe yaramadı. Bu bazı etiketleri temizlemeyip bazı kapatılmış etiketleri de 2. kez kapatıyor.
  • 19-06-2010, 00:52:54
    #4
    Hkan adlı üyeden alıntı: mesajı görüntüle
    Hocam bu işe yaramadı. Bu bazı etiketleri temizlemeyip bazı kapatılmış etiketleri de 2. kez kapatıyor.
    Arkadaşım ben verdiğin örneğe göre yazdım fikir olması açısından. Gördüğün gibi örnekte alıntı içinde html tag varsa, o tagın kapanış kısmını alıntı sonuna ekliyor.

    Birden fazla etiket olacaksa alıntılanan kısımda, preg_match değil preg_match_all kullanacaksın ve döngü ile yapacaksın.
  • 19-06-2010, 00:53:34
    #5
    Üyeliği durduruldu
    Denermisin
    $kac= strlen($text)-5; //<b />
    $sondan = substr($kac,5);
    if ($sondan!="<b />"){
    $text=$text."<b />";
    }
  • 19-06-2010, 00:54:18
    #6
    o tarz yerlerde hep strip_tags kullanırım butun html taglarını temızlerım.
  • 19-06-2010, 00:56:37
    #7
    Üyeliği durduruldu
    Sonucu Merak ettim
    CreativeYazilim adlı üyeden alıntı: mesajı görüntüle
    Denermisin
    $kac= strlen($text)-5; //<b />
    $sondan = substr($kac,5);
    if ($sondan!="<b />"){
    $text=$text."<b />";
    }
  • 19-06-2010, 01:03:39
    #8
    @CreativeYazilim; olay sadece <b> etiketinde değil. Ben onu örnek olarak verdim.
  • 19-06-2010, 01:20:34
    #9
    Hkan adlı üyeden alıntı: mesajı görüntüle
    @CreativeYazilim; olay sadece <b> etiketinde değil. Ben onu örnek olarak verdim.
    yazmak gerekli ama senin dediğinin kolay olacağını sanmıyorum

    </b> burada sondaki tag (</b>) 4 Karakter ama örneğin </font> geldi 7 Karakter

    eklenen verilenrin sondan 10 karakterini alıp
    Kesilen verinin sonuna ekletmelisinki yani veritabanına giden verinin sonuna
    %40'lık bir çözüm olacaktır..

    ama yinede sağlıklı olmaz


    en fazla bunu yapabilidim
    ama yapılmyacak diye birşey yok

    <?
    $deneme = "<b>deneme</";
    $deger =  substr($deneme,0,9);
    preg_match("/<(.*)>/",$deger,$cikti);
    $deger = str_replace("<","</",$cikti[0]);
    echo $deneme.$deger;
    //Çıktısı
    //<b>deneme</</b>
    
    ?>
    burada <font> tag'ında bir çok parametree kullanılabiliyor
    <?
    $deneme = "<font>deneme</";
    $deger =  substr($deneme,0,9);
    preg_match("/<(.*)>/",$deger,$cikti);
    $deger = str_replace("<","</",$cikti[0]);
    echo $deneme.$deger;
    //Çıktısı   
    //<font>deneme</</font>
    
    ?>
    inş fikir verebilmişimdir...