function WordLevelDiff::_split
1 call to WordLevelDiff::_split()
- WordLevelDiff::__construct in core/
lib/ Drupal/ Component/ Diff/ WordLevelDiff.php  - Constructor.
 
File
- 
              core/
lib/ Drupal/ Component/ Diff/ WordLevelDiff.php, line 23  
Class
- WordLevelDiff
 - @todo document @private @subpackage DifferenceEngine
 
Namespace
Drupal\Component\DiffCode
protected function _split($lines) {
  $words = [];
  $stripped = [];
  $first = TRUE;
  foreach ($lines as $line) {
    // If the line is too long, just pretend the entire line is one big word
    // This prevents resource exhaustion problems
    if ($first) {
      $first = FALSE;
    }
    else {
      $words[] = "\n";
      $stripped[] = "\n";
    }
    if (mb_strlen($line) > $this::MAX_LINE_LENGTH) {
      $words[] = $line;
      $stripped[] = $line;
    }
    else {
      if (preg_match_all('/ ( [^\\S\\n]+ | [0-9_A-Za-z\\x80-\\xff]+ | . ) (?: (?!< \\n) [^\\S\\n])? /xs', $line, $m)) {
        $words = array_merge($words, $m[0]);
        $stripped = array_merge($stripped, $m[1]);
      }
    }
  }
  return [
    $words,
    $stripped,
  ];
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.