2016-06-02 3 views
1

아이디어는 일부 개요 모드에서 사용자 게시물의 처음 80자를 볼 수 있도록하는 것입니다. 하지만 bbtags로 어떻게 할 수 있습니까? bbcode 게시물에서 유효한 부분 문자열을 얻는 방법

  • 어떻게하지 bbtag
  • 의 중간
  • 어떻게하지를 열어 태그에 문자열을 잘라.
  • 난 그냥 그 중 하나가 스포일러 :-)이기 때문에

내가 할 수있는 빠른 인터넷 검색이 도움이되지 않았다 방법을 전혀 단서가 없다 (내가 간단한 서식을 무시할 수), 해당 태그를 무시할 수 없다.

예 : 내가 원하는 경우

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); 

당신은이 경우에 코드, 테스트를 다시 작성해야합니다 "] ["과 "[] [[[[[]]] [[]] [[[["

다른 알고리즘을 선택하고 정규식을 사용하면 ....

관련 문제