original_string: protected function format_text($text) {
          // Since we allow output for highlighting, we need to encode html entities.
          // This ensures plaintext html chars don't become valid html.
          $out = s($text);
  
          $startcount = 0;
          $endcount = 0;
  
          // Remove end/start pairs that span a few common seperation characters. Allows us to highlight phrases instead of words.
          $regex = '|'.engine::HIGHLIGHT_END.'([ .,-]{0,3})'.engine::HIGHLIGHT_START.'|';
          $out = preg_replace($regex, '$1', $out);
  
          // Now replace our start and end highlight markers.
          $out = str_replace(engine::HIGHLIGHT_START, '<span class="highlight">', $out, $startcount);
          $out = str_replace(engine::HIGHLIGHT_END, '</span>', $out, $endcount);
  
          // This makes sure any highlight tags are balanced, incase truncation or the highlight text contained our markers.
          while ($startcount > $endcount) {
              $out .= '</span>';
              $endcount++;
          }
          while ($startcount < $endcount) {
              $out = '<span class="highlight">' . $out;
              $endcount++;
          }
  
          return parent::format_text($out);
      }
code: protected function format_text($text) {
          // Since we allow output for highlighting, we need to encode html entities.
          // This ensures plaintext html chars don't become valid html.
          $out = s($text);
  
          $startcount = 0;
          $endcount = 0;
  
          // Remove end/start pairs that span a few common seperation characters. Allows us to highlight phrases instead of words.
          $regex = '|'.engine::HIGHLIGHT_END.'([ .,-]{0,3})'.engine::HIGHLIGHT_START.'|';
          $out = preg_replace($regex, '$1', $out);
  
          // Now replace our start and end highlight markers.
          $out = str_replace(engine::HIGHLIGHT_START, '<span class="highlight">', $out, $startcount);
          $out = str_replace(engine::HIGHLIGHT_END, '</span>', $out, $endcount);
  
          // This makes sure any highlight tags are balanced, incase truncation or the highlight text contained our markers.
          while ($startcount > $endcount) {
              $out .= '</span>';
              $endcount++;
          }
          while ($startcount < $endcount) {
              $out = '<span class="highlight">' . $out;
              $endcount++;
          }
  
          return parent::format_text($out);
      }
code_tokens: protected function format_text ( $ text ) { // Since we allow output for highlighting, we need to encode html entities. // This ensures plaintext html chars don't become valid html. $ out = s ( $ text ) ; $ startcount = 0 ; $ endcount = 0 ; // Remove end/start pairs that span a few common seperation characters. Allows us to highlight phrases instead of words. $ regex = '|' . engine :: HIGHLIGHT_END . '([ .,-]{0,3})' . engine :: HIGHLIGHT_START . '|' ; $ out = preg_replace ( $ regex , '$1' , $ out ) ; // Now replace our start and end highlight markers. $ out = str_replace ( engine :: HIGHLIGHT_START , '<span class="highlight">' , $ out , $ startcount ) ; $ out = str_replace ( engine :: HIGHLIGHT_END , '</span>' , $ out , $ endcount ) ; // This makes sure any highlight tags are balanced, incase truncation or the highlight text contained our markers. while ( $ startcount > $ endcount ) { $ out .= '</span>' ; $ endcount ++ ; } while ( $ startcount < $ endcount ) { $ out = '<span class="highlight">' . $ out ; $ endcount ++ ; } return parent :: format_text ( $ out ) ; }
docstring: Formats a text string coming from the search engine.
  
  @param  string $text Text to format
  @return string HTML text to be renderer
docstring_tokens: Formats a text string coming from the search engine .