Foros del Web » Programando para Internet » PHP »

Aporte: alternativa colorida a print_r()

Estas en el tema de Aporte: alternativa colorida a print_r() en el foro de PHP en Foros del Web. Esta función es una alternativa a print_r() que imprime los arrays dentro de tablas. Utiliza colores aleatorios para cada tabla para visualizar mejor cada elemento ...
  #1 (permalink)  
Antiguo 16/10/2010, 02:56
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Aporte: alternativa colorida a print_r()

Esta función es una alternativa a print_r() que imprime los arrays dentro de tablas.
Utiliza colores aleatorios para cada tabla para visualizar mejor cada elemento del array.
Modificar a gusto del consumidor:

Código PHP:
<?php


function print_a($array){
    

      
mt_srand((double)microtime()*1000000);
      
$color '';
      while(
strlen($color)<6){
            
$color .= sprintf("%02X"mt_rand(0255));
      }
    
    
$t "<table 
            width=\"100%\"
            cellpadding=\"2\"
            cellspacing=\"0\"
            border=\"1\"
            bordercolor=\""
.$color."\"
            bgcolor=\""
.$color."\"
            >"
;

    
$i 0;
    foreach(
$array as $key => $value){
        
        
$t.="<tr ".($i%2==0?"":"bgcolor=\"#FFFFFF\"").">
                <td align=\"center\">$key</td>
                <td>"
.(is_array($value)?print_a($value):"".$value." (".(gettype($value))." ".strlen($value).")")."</td>
            </tr>"
;
        
$i++;
        }
        
$t .= "</table>";
    return 
$t;
    }
    
    
/**
     * EJEMPLO
     * 
     */
    
    
$array = array(
'0' => 'Cero',
'1' => 'Uno',
'2' => 'Dos',
'3' => array(
'0' => array(
'0' => 'Cero',
'1' => 'Uno',
'2' => 'Dos',
'3' => array(
'0' => 'Cero',
'1' => 'Uno',
'2' => 'Dos',
'3' => array(
'0' => 'Cero',
'1' => 'Uno',
'2' => 'Dos',
'3' => 'Tres'))),
'1' => 'Uno',
'2' => 'Dos',
'3' => 'Tres'),
'4' => 'Cuatro',
'5' => array(
'0' => 'Cero',
'1' => 'Uno',
'2' => 'Dos',
'3' => 'Tres'),
'6' => 'Seis');

echo 
print_a($array);
    

?>
1 SALUDO
  #2 (permalink)  
Antiguo 16/10/2010, 03:15
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Aporte: alternativa colorida a print_r()

Muy interesante. Me gustó la forma como lo trabajaste

Edito:
Sería bueno que en vez de recorrer en un bucle, lo hagas directo en la función de sprintf, ya que como le estás indicando que sean seis caracteres obligado, a esto me refiero
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4. function print_a($array){
  5.     mt_srand((double)microtime()*1000000);
  6.     $color = sprintf("%02X%02X%02X", mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
  7.      
  8.     $t = "<table  
  9.            width=\"100%\"
  10.            cellpadding=\"2\"
  11.            cellspacing=\"0\"
  12.            border=\"1\"
  13.            bordercolor=\"".$color."\"
  14.            bgcolor=\"".$color."\"
  15.            >";
  16.  
  17.     $i = 0;
  18.     foreach($array as $key => $value){
  19.          
  20.         $t.="<tr ".($i%2==0?"":"bgcolor=\"#FFFFFF\"").">
  21.                <td align=\"center\">$key</td>
  22.                <td>".(is_array($value)?print_a($value):"".$value." (".(gettype($value))." ".strlen($value).")")."</td>
  23.            </tr>";
  24.         $i++;
  25.         }
  26.         $t .= "</table>";
  27.     return $t;
  28.     }
  29.      
  30.     /**
  31.      * EJEMPLO
  32.      *  
  33.      */
  34.      
  35.     $array = array(
  36. '0' => 'Cero',
  37. '1' => 'Uno',
  38. '2' => 'Dos',
  39. '3' => array(
  40. '0' => array(
  41. '0' => 'Cero',
  42. '1' => 'Uno',
  43. '2' => 'Dos',
  44. '3' => array(
  45. '0' => 'Cero',
  46. '1' => 'Uno',
  47. '2' => 'Dos',
  48. '3' => array(
  49. '0' => 'Cero',
  50. '1' => 'Uno',
  51. '2' => 'Dos',
  52. '3' => 'Tres'))),
  53. '1' => 'Uno',
  54. '2' => 'Dos',
  55. '3' => 'Tres'),
  56. '4' => 'Cuatro',
  57. '5' => array(
  58. '0' => 'Cero',
  59. '1' => 'Uno',
  60. '2' => 'Dos',
  61. '3' => 'Tres'),
  62. '6' => 'Seis');
  63.  
  64. echo print_a($array);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Última edición por abimaelrc; 16/10/2010 a las 03:23

Etiquetas: aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:30.