2016-06-02 10 views
1

考え方は、いくつかのオーバービューモードでユーザー投稿の最初の80文字を表示させることです。しかし、どのように私はbbtagsでそれを行うのですか? bbtag 方法だけではなく、オープンタグにbbcode投稿から有効な部分文字列を取得する方法

  • の途中で文字列をカットしないようにどのように

    • は、私はそれらの一つは、スポイラー:-)あるので

    私はそれを行うには、迅速なグーグルでは助けにはならなかったか全く手がかりがない(私は簡単な書式設定を無視することができ)、これらのタグを無視することはできません。

    例:

    Darth Vader [spoiler]is father of luke skywalker[/spoiler] 
    

    私は20文字の部分文字列をしたい場合、私はこの望む:

    Darth Vader [spoiler]is fathe[/spoiler] 
    
  • +0

    回答に例を追加できますか?私はあなたが何を待っているのか理解できませんでした。 –

    +0

    @MaximTkach - サンプルが追加されました – Gonzi

    答えて

    1

    たぶん、あなたはこのコードを支援し、それがさらに発展しなければならないが、アイデアがでなければなりませんクリア:

    $str = 'Darth Vader [spoiler]is father of luke skywalker[/spoiler]'; 
    
    function parse($str, $count) 
    { 
        $arr1 = str_split($str); 
        $result = []; 
        $i = 0; 
        $open = false; 
        foreach ($arr1 as $chr) 
        { 
         if ($open || $chr === '[') 
         { 
          $open = true; 
          if ($chr === ']') 
          { 
           $result[] = $chr; 
           $open = false; 
          } 
          else 
          { 
           $result[] = $chr; 
          } 
         } 
         elseif($i <= $count) 
         { 
          $result[] = $chr; 
          $i++; 
         } 
        } 
        return implode($result); 
    } 
    echo parse($str, 20); 
    

    あなたはこのような場合に、コード、およびテストを書き換える必要があります: "] [" および "[] [[[[[]]]、[[]]、[[[["

    他のアルゴリズムを選択して正規表現を使用してください....

    関連する問題