sexta-feira, 7 de dezembro de 2018


Exemplo de como ler um arquivo modelo alterar informações dele e salvar em um novo arquivo.


private function mergeModeloToDocumento(string $nomeDoTemplate){
$novo_arquivo = 'data/contrato.phtml';
if (!file_exists($nomeDoTemplate)) {
            throw new \Exception('Template não encontrado!');
        }

        $novo_buffer = '';
        $le_arquivo = fopen($nomeDoTemplate, "r");
        if ($le_arquivo){
            try{
                while (!feof($le_arquivo)) {
                    $buffer = fgets($le_arquivo, filesize($nomeDoTemplate));
                    $novo_buffer .= str_replace('<@numeroContrato>',  '00002', $buffer);
                         
                }
            } finally {
                fclose($le_arquivo);
            }
        }
        try{
            $escreve_arquivo = fopen($novo_arquivo, "w");
            if($escreve_arquivo) {
                fwrite($escreve_arquivo, $novo_buffer);
            }
        } finally {
            fclose($escreve_arquivo);
        }
        return $novo_arquivo;
    }

Exemplo:

$nomeDoNovoArquivo = $this->mergeModeloToDocumento('data/modelo.phtml');

echo 'Arquivo salvo em '.$nomeDoNovoArquivo.'.';

Conteúdo do Arquivo Modelo:

Contrato Nr. <@numeroContrato>

Conteúdo do Arquivo Final:

Contrato Nr. 00002

Abaixo exemplos de como extrair o Dia, Mês e Ano, de uma data.

class UtilData {        
        public static function getDia(\DateTime $data){
            return $data->format('d');
        }

        public static function getMes(\DateTime $data){
            return $data->format('m');
        }

        public static function getAno(\DateTime $data){
            return $data->format('Y');

        }
}

$dtz = new DateTimeZone('America/Sao_Paulo'); //Your timezone
$dataDeHoje = new DateTime(date('Y-m-d'), $dtz);

echo UtilData::getDia($dataDeHoje); // Dia
echo UtilData::getDia($dataDeHoje); // Mês
echo UtilData::getDia($dataDeHoje); // Ano

ou Simplesmente

echo date('d'); // Dia
echo date('m'); // Mes
echo date('Y'); // Ano

mais informações