Esempio n. 1
0
 /**
  * Render a dump for a string value
  *
  * @param mixed $data
  * @param string $name
  * @access private
  * @static
  */
 private static function _string($data, $name)
 {
     $collapsed = Krumo::_isCollapsed(self::$_level, 1);
     if ($collapsed) {
         $collapse_style = 'style="display: none;"';
     } else {
         $collapse_style = '';
     }
     // extra
     $_ = $data;
     // Get the truncate length from the config, or default to 100
     $truncate_length = Krumo::_config('display', 'truncate_length', 100);
     $display_cr = Krumo::_config('display', 'carriage_returns', true);
     if (strlen($data) > $truncate_length) {
         $_ = substr($data, 0, $truncate_length - 1);
         $_extra = true;
     } else {
         $_extra = false;
     }
     $icon = '';
     // Check to see if the line has any carriage returns
     if (preg_match("/\n|\r/", $data)) {
         $slash_n = substr_count($data, "\n");
         $slash_r = substr_count($data, "\r");
         $title .= "Note: String contains ";
         if ($slash_n) {
             $title .= "{$slash_n} " . krumo::plural($slash_n, "new line");
         }
         if ($slash_n && $slash_r) {
             $title .= " and ";
         }
         if ($slash_r) {
             $title .= "{$slash_r} " . krumo::plural($slash_r, "carriage return");
         }
         $icon = Krumo::get_icon("information", $title);
         // We flag this as extra so the dropdown can show the correctly formatted version
         $_extra = true;
     }
     $_ = htmlentities($_);
     // Convert all the \r or \n to visible paragraph markers
     if ($display_cr) {
         $_ = preg_replace("/(\\r\\n|\\n|\\r)/", "<strong class=\"krumo-carrage-return\"> &para; </strong>", $_);
     } else {
         $_ = nl2br($_);
     }
     $expand_class = '';
     if ($_extra) {
         $expand_class = 'krumo-expand';
     }
     print "<li class=\"krumo-child\">";
     print "<div class=\"krumo-element {$expand_class}\" ";
     if ($_extra) {
         print " onClick=\"krumo.toggle(this);\" ";
     }
     print "onMouseOver=\"krumo.over(this);\" onMouseOut=\"krumo.out(this);\">\n";
     print "<a class=\"krumo-name\">{$name}</a> ";
     print "<em class=\"krumo-type\">String(<strong class=\"krumo-string-length\">" . strlen($data) . "</strong>)</em> {$icon}";
     print Krumo::get_separator() . " <strong class=\"krumo-string\">" . $_;
     // This has to go AFTER the htmlspecialchars
     if (strlen($data) > $truncate_length) {
         print "&hellip;";
     }
     print "</strong>";
     $ut = Krumo::is_datetime($name, $data);
     if ($ut) {
         print " ~ <strong class=\"krumo-datetime\">{$ut}</strong>";
     }
     // callback
     if (is_callable($data)) {
         print "<span class=\"krumo-callback\"> | ";
         print "(<em class=\"krumo-type\">Callback</em>) <strong class=\"krumo-string\">" . htmlSpecialChars($_) . "()</strong></span>";
     }
     print "</div>";
     if ($_extra) {
         $data = htmlentities($data);
         $data = nl2br($data);
         print "<div class=\"krumo-nest\" {$collapse_style}>";
         print "<ul class=\"krumo-node\">";
         print "<li class=\"krumo-child\"> <div class=\"krumo-preview\">" . $data . "</div></li>";
         print "</ul></div>";
     }
     print "</li>";
 }