Changeset 793 for branches/1.1dev/lib


Ignore:
Timestamp:
Apr 10, 2023 10:48:12 PM (13 months ago)
Author:
anonymous
Message:

Backport dump() function from trunk

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.1dev/lib/Utilities.inc.php

    r792 r793  
    5555
    5656    case SC_DUMP_JSON:
    57         echo json_encode($var, JSON_PRETTY_PRINT);
     57        echo json_encode($var, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | JSON_PRETTY_PRINT);
    5858        break;
    5959    }
     
    7373 * @return string Dump of var.
    7474 */
    75 function getDump($var)
    76 {
    77     ob_start();
    78     print_r($var);
    79     $d = ob_get_contents();
    80     ob_end_clean();
    81     return $d;
     75function getDump($var, $serialize=false, $dump_method=SC_DUMP_PRINT_R)
     76{
     77    $app =& App::getInstance();
     78
     79    switch ($dump_method) {
     80    case SC_DUMP_PRINT_R:
     81        // Print human-readable descriptions of invisible types.
     82        if (null === $var) {
     83            $d = '(null)';
     84        } else if (true === $var) {
     85            $d = '(bool: true)';
     86        } else if (false === $var) {
     87            $d = '(bool: false)';
     88        } else if (is_scalar($var) && '' === $var) {
     89            $d = '(empty string)';
     90        } else if (is_scalar($var) && preg_match('/^\s+$/', $var)) {
     91            $d = '(only white space)';
     92        } else {
     93            ob_start();
     94            print_r($var);
     95            $d = ob_get_contents();
     96            ob_end_clean();
     97        }
     98        break;
     99
     100    case SC_DUMP_VAR_DUMP:
     101        ob_start();
     102        print_r($var);
     103        var_dump($var);
     104        ob_end_clean();
     105        break;
     106
     107    case SC_DUMP_VAR_EXPORT:
     108        ob_start();
     109        print_r($var);
     110        var_export($var);
     111        ob_end_clean();
     112        break;
     113
     114    case SC_DUMP_JSON:
     115    default:
     116        $json_flags = $serialize ? 0 : JSON_PRETTY_PRINT;
     117        return json_encode($var, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK | $json_flags);
     118    }
     119    return $serialize ? preg_replace('/\s+/m' . $app->getParam('preg_u'), ' ', $d) : $d;
    82120}
    83121
Note: See TracChangeset for help on using the changeset viewer.