• 11-05-2018, 02:13:24
    #1
    Öncelikle iyi akşamlar,

    Aşağıdaki basit BBCODE parser'i kullanıyorum.

    //////////////////////////////
    function bbc2html($content) {
      $search = array (
        '/([b])(.*?)([/b])/',
        '/([i])(.*?)([/i])/',
        '/([u])(.*?)([/u])/',
        '/([ul])(.*?)([/ul])/',
        '/([li])(.*?)([/li])/',
        '/([URL])(.*?)([/URL])/',
        '/([url])(.*?)([/url])/'
      );
    
      $replace = array (
        '<strong>$2</strong>',
        '<em>$2</em>',
        '<u>$2</u>',
        '<ul>$2</ul>',
        '<li>$2</li>',
        '<a href="$2" target="_blank">$4</a>',
        '<a href="$2" target="_blank">$2</a>'
      );
    
      return preg_replace($search, $replace, $content);
    }
    //////////////////////////////
    Bir de java script ile butanlara tıklandığında bbkodları textarea içine include ediyorum: kısacası TinyMCE plugin'in basit bir versiyonu gibi düşünebilirsiniz. (ancak textarea dan oluşuyor contenteditable kullanmıyorum)
    Daha doğrusu contenteditable kullanmak istemiyorum ve bu yüzden kendim yazmak istedim.

    Çünkü database'e direkt bbcode olarak kayıt etmem gerekiyor. Veriyi çektikten sonra html taglara dönüştürüyorum.

    Ancak sorun şu ki: içi boş "[b ] [/ b]" gibi bir tag veya yanlış tıklanmış "[b [ ]b]örnek[/b[/]]" gibi bir tag'ı post ettiklerinde bunu temizlemek istiyorum "[b]örnek[b]" gibi saf hale getirmek veya içi boş ise tamamen silmek istiyorum. Bu işin içinden çıkılır mı? Yoksa hiç uğraşma ve bir bbcode script'i mi kullan dersiniz? Teşekkürler.
  • 11-05-2018, 06:55:13
    #2
    Prototype adlı üyeden alıntı: mesajı görüntüle
    Öncelikle iyi akşamlar,

    Aşağıdaki basit BBCODE parser'i kullanıyorum.

    //////////////////////////////
    function bbc2html($content) {
      $search = array (
        '/([b])(.*?)([/b])/',
        '/([i])(.*?)([/i])/',
        '/([u])(.*?)([/u])/',
        '/([ul])(.*?)([/ul])/',
        '/([li])(.*?)([/li])/',
        '/([URL])(.*?)([/URL])/',
        '/([url])(.*?)([/url])/'
      );
    
      $replace = array (
        '<strong>$2</strong>',
        '<em>$2</em>',
        '<u>$2</u>',
        '<ul>$2</ul>',
        '<li>$2</li>',
        '<a href="$2" target="_blank">$4</a>',
        '<a href="$2" target="_blank">$2</a>'
      );
    
      return preg_replace($search, $replace, $content);
    }
    //////////////////////////////
    Bir de java script ile butanlara tıklandığında bbkodları textarea içine include ediyorum: kısacası TinyMCE plugin'in basit bir versiyonu gibi düşünebilirsiniz. (ancak textarea dan oluşuyor contenteditable kullanmıyorum)
    Daha doğrusu contenteditable kullanmak istemiyorum ve bu yüzden kendim yazmak istedim.

    Çünkü database'e direkt bbcode olarak kayıt etmem gerekiyor. Veriyi çektikten sonra html taglara dönüştürüyorum.

    Ancak sorun şu ki: içi boş "[b ] [/ b]" gibi bir tag veya yanlış tıklanmış "[b [ ]b]örnek[/b[/]]" gibi bir tag'ı post ettiklerinde bunu temizlemek istiyorum "[b]örnek" gibi saf hale getirmek veya içi boş ise tamamen silmek istiyorum. Bu işin içinden çıkılır mı? Yoksa hiç uğraşma ve bir bbcode script'i mi kullan dersiniz? Teşekkürler.


    editable tasarla daha sonra gelen htmlleri replace ile cevir bbcode'a sonra onu kaydet. diger turlu bunun tespitini yapamazsin da olabilir [b]
    ' de olabilir [b][/b]'de olabilir.
    O yuzden tavsiyem editor kullan hazir scriptleri sonra gonderilen datayi sql'e kaydederken bi replace ile bbcode yap
  • 11-05-2018, 18:59:09
    #3
    SaidYildiz adlı üyeden alıntı: mesajı görüntüle
    editable tasarla daha sonra gelen htmlleri replace ile cevir bbcode'a sonra onu kaydet. diger turlu bunun tespitini yapamazsin da olabilir [b][/b]' de olabilir [b][/b]'de olabilir.
    O yuzden tavsiyem editor kullan hazir scriptleri sonra gonderilen datayi sql'e kaydederken bi replace ile bbcode yap
    Teşekkür ederim dediğinizi uygulayıp test edeceğim.