<?php // Code within app\Helpers\Helper.php

namespace App\Lib;

class Helpers
{

    //Imprime un array en forma ordenada
    function pr($data)
    {
        print "<pre>";
        print_r($data);
        print "</pre>";
    }
    // obtiene el path de la url
    function urlBase()
    {
        return $current_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

        if (isset($_SERVER['HTTPS'])) {
            $protocol = ($_SERVER['HTTPS'] && $_SERVER['HTTPS'] != "off") ? "https" : "http";
        } else {
            $protocol = 'http';
        }
        return $protocol . "://" . $_SERVER['HTTP_HOST'] . '/';
    }

    //Corta una cadena de texto en la cantidad de letras especificada, agrega 3 puntos al final.
    public static function str_cut($str, $len)
    {
        $str = strip_tags($str);
        if (strlen($str) > $len) {
            $str = mb_substr($str, 0, $len, "utf-8"); //para no tener problemas con UTF8 ...
            // $str = substr($str, 0, $len);
            return $str . "...";
        } else {
            return $str;
        }
    }

    function str_cut_icono($str, $len)
    {
        $str = strip_tags($str);
        if (strlen($str) > $len) {
            $str = substr($str, 0, $len);
            return $str . "...";
        } else {
            return $str;
        }
    }

    //Formatea la fecha que viene del datetimePicker
    function dateTimeFormat($dateTime)
    {
        $dateTimeGuion = str_replace('/', '-', $dateTime);
        return date('Y-m-d H:i:s', strtotime($dateTimeGuion));
    }

    //Extrae el nombre de archivo a partir de un nombre.extension
    function extraerFileName($filename)
    {
        $ext = pathinfo($filename, PATHINFO_EXTENSION);
        $ext = '.' . $ext;
        $filename = basename($filename, $ext);
        return $filename;
    }

    //Formatea la fecha que viene del datetimePicker
    function dateFormat($dateTime)
    {
        $dateGuion = str_replace('/', '-', $dateTime);
        return date('Y-m-d', strtotime($dateGuion));
    }

    function in_array_r($needle, $haystack, $strict = false)
    {
        foreach ($haystack as $item) {
            if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
                return true;
            }
        }

        return false;
    }

    
}
