Changeset 649 for branches/1.1dev
- Timestamp:
- Nov 15, 2018 11:02:45 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/1.1dev/lib/Utilities.inc.php
r646 r649 9 9 * Print variable dump. 10 10 * 11 * @param mixed $var Variable to dump. 12 * @param bool $display Hide the dump in HTML comments? 13 * @param bool $var_dump Use var_dump instead of print_r. 14 */ 15 function dump($var, $display=false, $var_dump=false) 16 { 17 echo $display ? "\n<br /><pre>\n" : "\n\n\n<!--\n"; 18 if ($var_dump) { 11 * @param mixed $var The variable to dump. 12 * @param bool $display Print the dump in <pre> tags or hide it in html comments (non-CLI only). 13 * @param bool $dump_method Dump method. See SC_DUMP_* constants. 14 * @param string $file Value of __FILE__. 15 * @param string $line Value of __LINE__ 16 */ 17 define('SC_DUMP_PRINT_R', 0); 18 define('SC_DUMP_VAR_DUMP', 1); 19 define('SC_DUMP_VAR_EXPORT', 2); 20 function dump($var, $display=false, $dump_method=SC_DUMP_PRINT_R, $file='', $line='') 21 { 22 $app =& App::getInstance(); 23 24 if ('cli' === php_sapi_name() || defined('_CLI')) { 25 echo "DUMP FROM: $file $line\n"; 26 } else { 27 echo $display ? "\n<br />DUMP <strong>$file $line</strong><br /><pre>\n" : "\n<!-- DUMP $file $line\n"; 28 } 29 30 switch ($dump_method) { 31 case SC_DUMP_PRINT_R: 32 default: 33 // Print human-readable descriptions of invisible types. 34 if (null === $var) { 35 echo '(null)'; 36 } else if (true === $var) { 37 echo '(bool: true)'; 38 } else if (false === $var) { 39 echo '(bool: false)'; 40 } else if (is_scalar($var) && '' === $var) { 41 echo '(empty string)'; 42 } else if (is_scalar($var) && preg_match('/^\s+$/', $var)) { 43 echo '(only white space)'; 44 } else { 45 print_r($var); 46 } 47 break; 48 49 case SC_DUMP_VAR_DUMP: 19 50 var_dump($var); 20 } else { 21 print_r($var); 22 } 23 echo $display ? "\n</pre><br />\n" : "\n-->\n\n\n"; 51 break; 52 53 case SC_DUMP_VAR_EXPORT: 54 var_export($var); 55 break; 56 } 57 58 if ('cli' === php_sapi_name() || defined('_CLI')) { 59 echo "\n"; 60 } else { 61 echo $display ? "\n</pre><br />\n" : "\n-->\n"; 62 } 24 63 } 25 64 … … 43 82 * Return dump as cleaned text. Useful for dumping data into emails. 44 83 * 45 * @param mixed $varVariable to dump.46 * 84 * @param array $var Variable to dump. 85 * @param strong $indent A string to prepend indented lines (tab for example). 47 86 * @return string Dump of var. 48 87 */ … … 52 91 if (is_array($var)) { 53 92 foreach ($var as $k=>$v) { 54 $k = ucfirst( strtolower(str_replace(array('_', ' '), ' ', $k)));93 $k = ucfirst(mb_strtolower(str_replace(array('_', ' '), ' ', $k))); 55 94 if (is_array($v)) { 56 95 $output .= sprintf("\n%s%s: %s\n", $indent, $k, fancyDump($v, $indent . $indent)); … … 62 101 $output .= sprintf("%s%s\n", $indent, $var); 63 102 } 64 return $output;103 return preg_replace(['/^[ \t]+$/', '/\n\n\n+/'], ['', "\n\n"], $output); 65 104 } 66 105 … … 215 254 * @since 29 Mar 2006 13:48:49 216 255 */ 217 function truncate($str, $len, $where='end', $delim='âŠ') 218 { 219 if ($len <= 3 || mb_strlen($str) <= 3) { 220 return ''; 221 } 222 $part1 = floor(($len - 3) / 2); 223 $part2 = ceil(($len - 3) / 2); 256 function truncate($str, $len=50, $where='end', $delim='âŠ') 257 { 258 $dlen = mb_strlen($delim); 259 if ($len <= $dlen || mb_strlen($str) <= $dlen) { 260 return substr($str, 0, $len); 261 } 262 $part1 = floor(($len - $dlen) / 2); 263 $part2 = ceil(($len - $dlen) / 2); 264 265 if ($len > ini_get('pcre.backtrack_limit')) { 266 logMsg(sprintf('Asked to truncate string len of %s > pcre.backtrack_limit of %s', $len, ini_get('pcre.backtrack_limit')), LOG_DEBUG, __FILE__, __LINE__); 267 ini_set('pcre.backtrack_limit', $len); 268 } 269 224 270 switch ($where) { 225 271 case 'start' : 226 return preg_replace(array(sprintf('/^.{4,}(.{%s})$/sU', $part1 + $part2), '/\s*\.{3,}\s*/sU'), array($delim . '$1', $delim), $str); 227 break; 272 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); 273 274 case 'middle' : 275 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); 276 277 case 'end' : 228 278 default : 229 case 'middle' : 230 return preg_replace(array(sprintf('/^(.{%s}).{4,}(.{%s})$/sU', $part1, $part2), '/\s*\.{3,}\s*/sU'), array('$1' . $delim . '$2', $delim), $str); 231 break; 232 case 'end' : 233 return preg_replace(array(sprintf('/^(.{%s}).{4,}$/sU', $part1 + $part2), '/\s*\.{3,}\s*/sU'), array('$1' . $delim, $delim), $str); 234 break; 279 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); 235 280 } 236 281 }
Note: See TracChangeset
for help on using the changeset viewer.