Funções em PHP úteis para o dia-a-dia

Ao longo dos anos, como a maioria dos programadores ( ao menos PHP ), fui salvando tudo aquilo que me ajudou algum dia ( ou madrugada desesperado ).  Algumas já estão um pouco ultrapassadas, ou já existem maneiras mais “amigáveis”, mesmo assim, acho válido compartilhar.

Obter Extensão

Na época foi usada pra personalizar o ícone de cada tipo de arquivo em uma pasta.

A função abaixo foi escrita para obter a extensão de um arquivo:

/**
* Função usada para obter a extensão de arquivo.
* Exemplo de uso: $path = '/var/www/html/path/to/file.gif';
* $ext = get_extension($path); 
* Resultado = "gif";
*/
function get_extension($caminho)
{
    return strtolower( end(explode('.',$caminho)) ) ;
}

Exemplo de uso:



 echo get_extension('/var/www/html/path/to/file.gif'); #output "gif"

Manipulação de Datas

Até hoje é um tema que gera bastante duvida entre os devs..


function diferenca_dias($data_inicial,$data_final)
{
    // Usa a função strtotime() e pega o timestamp das duas datas:
    $time_inicial = strtotime($data_inicial);
    $time_final = strtotime($data_final);

    // Calcula a diferença de segundos entre as duas datas:
    $diferenca = $time_final - $time_inicial; // 19522800 segundos

    // Calcula a diferença de dias
    $dias = (int)floor( $diferenca / (60 * 60 * 24)); // 225 dias

    return $dias;
    #return date_diff(date_create($data_inicial),date_create($data_final))->format('%a ');
}

Exemplo de uso:


 echo diferenca_dias('2009-03-23','2009-03-29'); #out  = 6

Formatação

De decimal ( 10,2 ) para Real ( R$ )

function format_decimal_to_form($str='')
{
    if(!empty($str)&&strpos($str,'R$')===false)
    {
        $str = 'R$'.number_format($str,2,',','.');
    }
    return $str;
}

Exemplo de uso:


 echo format_decimal_to_form('1223,23'); #out  = 'R$1.223,23'

Copia de diretório

Usei essa função pra simular o publish do VS em outro servidor

function copyr($source, $dest)
{
    // Check for symlinks
    if (is_link($source)) {
        return symlink(readlink($source), $dest);
    }

    // Simple copy for a file
    if (is_file($source)) {
        return copy($source, $dest);
    }

    // Make destination directory
    if (!is_dir($dest)) {
        mkdir($dest);
    }

    // Loop through the folder
    $dir = dir($source);
    while (false !== $entry = $dir->read()) {
        // Skip pointers
        if ($entry == '.' || $entry == '..'|| $entry =='.svn'|| $entry =='.settings') {
            continue;
        }

        // Deep copy directories
        copyr("$source/$entry", "$dest/$entry");
    }

    // Clean up
    $dir->close();
    return true;
}

Exemplo de uso:


 copyr('/var/www/folder1','/var/www/folder2');

Encurtar URL

function short_url($url)
{
    $tinyURL = "http://tinyurl.com/api-create.php?url=".urlencode($url);

    if(function_exists('curl_init'))
    {
        $ch = curl_init($tinyURL);
        curl_setopt($ch,CURLOPT_AUTOREFERER,1);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_HTTPGET,1);
        $linkTinyUrl = curl_exec($ch);
        curl_close($ch);
        unset($ch);
    }else{
        $linkTinyUrl = file_get_contents($tinyURL);
    }

    return $linkTinyUrl;
}

Exemplo de uso:


 echo short_url("http://www.uol.com.br"); #out http://tinyurl.com/n50

 

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s