Changeset 531


Ignore:
Timestamp:
Jul 3, 2015 2:50:47 AM (9 years ago)
Author:
anonymous
Message:

Assuming it was a mistake, changed pcre modifier 'U' to 'u' in truncate() because it failed to match on strange XML strings.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Utilities.inc.php

    r523 r531  
    364364    $part1 = floor(($len - $dlen) / 2);
    365365    $part2 = ceil(($len - $dlen) / 2);
     366
     367    if ($len > ini_get('pcre.backtrack_limit')) {
     368        $app =& App::getInstance();
     369        $app->logMsg(sprintf('Asked to truncate string len of %s > pcre.backtrack_limit of %s', $len, ini_get('pcre.backtrack_limit')), LOG_DEBUG, __FILE__, __LINE__);
     370        ini_set('pcre.backtrack_limit', $len);
     371    }
     372
    366373    switch ($where) {
    367374    case 'start' :
    368         return preg_replace(array(sprintf('/^.{%s,}(.{%s})$/sU', $dlen + 1, $part1 + $part2), sprintf('/\s*%s{%s,}\s*/sU', preg_quote($delim), $dlen)), array($delim . '$1', $delim), $str);
     375        return preg_replace(array(sprintf('/^.{%s,}(.{%s})$/su', $dlen + 1, $part1 + $part2), sprintf('/\s*%s{%s,}\s*/su', preg_quote($delim), $dlen)), array($delim . '$1', $delim), $str);
    369376
    370377    case 'middle' :
    371         return preg_replace(array(sprintf('/^(.{%s}).{%s,}(.{%s})$/sU', $part1, $dlen + 1, $part2), sprintf('/\s*%s{%s,}\s*/sU', preg_quote($delim), $dlen)), array('$1' . $delim . '$2', $delim), $str);
     378        return preg_replace(array(sprintf('/^(.{%s}).{%s,}(.{%s})$/su', $part1, $dlen + 1, $part2), sprintf('/\s*%s{%s,}\s*/su', preg_quote($delim), $dlen)), array('$1' . $delim . '$2', $delim), $str);
    372379
    373380    case 'end' :
    374381    default :
    375         return preg_replace(array(sprintf('/^(.{%s}).{%s,}$/sU', $part1 + $part2, $dlen + 1), sprintf('/\s*%s{%s,}\s*/sU', preg_quote($delim), $dlen)), array('$1' . $delim, $delim), $str);
     382        return preg_replace(array(sprintf('/^(.{%s}).{%s,}$/su', $part1 + $part2, $dlen + 1), sprintf('/\s*%s{%s,}\s*/su', preg_quote($delim), $dlen)), array('$1' . $delim, $delim), $str);
    376383    }
    377384}
Note: See TracChangeset for help on using the changeset viewer.