<?php 
/*! \file lib/herramientas.php 
Este software fué realizado por el Ing. Ricardo Naranjo 
Faccini, M.Sc.  para Skina IT Solutions E.U. fábrica de 
software colombiana radicada en Bogotá. 
 
Skina IT Solutions E.U. 
https://www.skinait.com 
[email protected] 
 
Copyright 2021 
 
Este archivo es parte de la librería SimpleSecREST. 
Contiene funciones utilitarias varias que se requieren 
para el buen funcionamiento del sistema pero no 
están necesariamente involucradas con la transmisión 
REST segura. 
---------------------------------------- 
This file is part of Simple-SecREST. 
 
Simple-SecREST is free software: you can redistribute it 
and/or modify it under the terms of the GNU Lesser General 
Public License as published by the Free Software Foundation, 
either version 3 of the License, or (at your option) any 
later version. 
 
Simple-SecREST is distributed in the hope that it will be 
useful, but WITHOUT ANY WARRANTY; without even the implied 
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE. See the GNU Lesser General Public License for more 
details. 
 
You should have received a copy of the GNU Lesser General 
Public License along with Simple-SecREST.  If not, see 
<https://www.gnu.org/licenses/>. 
***********************************************************/ 
function Mostrar($dato, $texto = "") { 
    return "$texto<pre>" 
         . htmlentities(stripslashes(var_export($dato, true))) 
         . "</pre>"; 
} 
 
 
/*------------------------------------------------------------------*/ 
function periodo2unidades($intervalo, $tipo) 
/********************************************************************* 
@brief Cambia el formato de un intervalo a las unidades expresadas en tipo. 
 
ENTRADAS: 
@param $intervalo El intervalo a formatear 
@param $tipo Podrá ser years, months, days, hours, minutes, seconds o miliseconds 
SALIDAS: 
Intervalo reformateado 
*********************************************************************/ 
{ 
    switch($tipo) { 
        case 'years': 
            return $intervalo->format('%Y'); 
            break; 
        case 'months': 
            $years = $intervalo->format('%Y'); 
            $months = 0; 
            if($years) 
                $months += $years*12; 
            $months += $intervalo->format('%m'); 
            return $months; 
            break; 
        case 'days': 
            return $intervalo->format('%a'); 
            break; 
        case 'hours': 
            $days = $intervalo->format('%a'); 
            $hours = 0; 
            if($days) 
                $hours += 24 * $days; 
            $hours += $intervalo->format('%H'); 
            return $hours; 
            break; 
        case 'minutes': 
            $qdias = $intervalo->format('%a'); 
            if(!is_numeric($qdias)) 
                $qdias = 0; 
            $qhoras = $intervalo->format('%H'); 
            if(!is_numeric($qhoras)) 
                $qhoras = 0; 
            $qminutos = $intervalo->format('%i'); 
            if(!is_numeric($qminutos)) 
                $hours = 0; 
            $minutos = 24 * 60 * $qdias + 60 * $qhoras + $qminutos; 
            return $minutos; 
            break; 
        case 'seconds': 
            $days = $intervalo->format('%a'); 
            $seconds = 0; 
            if($days) 
                $seconds += 24 * 60 * 60 * $days; 
            $hours = $intervalo->format('%H'); 
            if($hours) 
                $seconds += 60 * 60 * $hours; 
            $minutes = $intervalo->format('%i'); 
            if($minutes) 
                $seconds += 60 * $minutes; 
            $seconds += $intervalo->format('%s'); 
            return $seconds; 
            break; 
        case 'milliseconds': 
            $days = $intervalo->format('%a'); 
            $seconds = 0; 
            if($days) 
                $seconds += 24 * 60 * 60 * $days; 
            $hours = $intervalo->format('%H'); 
            if($hours) 
                $seconds += 60 * 60 * $hours; 
            $minutes = $intervalo->format('%i'); 
            if($minutes) 
                $seconds += 60 * $minutes; 
            $seconds += $intervalo->format('%s'); 
            $milliseconds = $seconds * 1000; 
            return $milliseconds; 
            break; 
        default: 
            return NULL; 
    } 
} 
 
 
/*------------------------------------------------------------------*/ 
function traza_de_funciones() 
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
@brief Para depurar presenta la jerarquia de llamado de funciones que 
se invocaron para llegar al llamado a ésta función. 
--------------------------------------------------------------------*/ 
{ 
    $retorno = ""; 
 
    $trace = debug_backtrace(); 
    array_shift($trace); 
    $trace = array_reverse($trace); 
    foreach ($trace as $traza) { 
        $retorno .= "\n".$traza["function"]."("; 
        foreach ($traza['args'] as $valor) { 
            if (is_object($valor)) { 
                if (isset($valor->id)) 
                    $retorno .= "[[".intval($valor->id)."]], "; 
                else 
                    $retorno .= var_export($valor, true).", "; 
            } else 
                $retorno .= var_export($valor, true).", "; 
        } 
        $retorno.= ")"; 
    } 
 
    return $retorno; 
} 
 
 
?> 
 
 |