Trabalhando com datas em php

Eu sempre me atrapalho quando tenho que mecher com datas no php, principalmente em conversão do formato brasileiro pro americano e vice-versa…Eu tinha feito uma função que usa explode, etc pra fazer essa conversão, mas usar funções nativas é sabidamente mais performático.

Vou postar aqui alguns exemplos que montei com uma grande ajuda o totoro.

<?php

echo "Hoje +1 mes: ";
echo date('d/m/Y H:i:s', strtotime('+1 month'));
echo "n";

echo "Formatar data atual: ";
echo date('d/m/Y H:i:s', strtotime('now'));
echo "n";

echo "Formatar data específica: ";
echo date('d/m/Y H:i:s', strtotime('2012-04-21 15:45:32'));
echo "n";

echo "Data especifica + 1 mes: ";
echo date('d/m/Y', strtotime('2012-04-21 +1 month'));
echo "n";

echo "Data no nosso formato -> formato americano: ";
echo date('Y-m-d', strtotime('09/10/1945'));
echo "n";

echo "Data no nosso formato + 1 mes -> formato americano: ";
echo date('Y-m-d', strtotime('09/10/1945 +1 month'));
echo "n";

?>

OBS: Esse post é dois em um: pode ajudar alguem postando aqui não me esqueço mais! ^^

Recarregando arquivo de configuração do varnish sem reiniciar

Esse script é uma adaptação do script do Kristian Lyngstol para reload das configuraçõess do varnish.

O script do Kristian funciona muito bem, mas o problema é que a cada reload ele mantem a vcl antiga na memoria, ficando assim lixo na RAM do servidor varnish. Com as modificações que efetuei ele manda um discard pras configurações antigas então a config fica na memoria apenas até todos objetos de cache relacionados a mesma tenham seu tempo expirado.

Sem mais milongas, o script:

#!/bin/bash
# Reload a varnish config
# Author: Kristian Lyngstol
# Corrigido, otimizado e adaptado por Felipe Braz || linux [arroba] portalaces.com

#Arquivo de configuração
FILE="/etc/varnish/default.vcl"

#Executaveis
VARNISHADM="/usr/local/bin/varnishadm"
AWK="/bin/awk"
GREP="/bin/grep"

# Hostname and management port
# (defined in /etc/default/varnish or on startup)
HOSTPORT="127.0.0.1:23"
NOW=`date +%s`

error()
{
    echo 1>&2 "Erro ao reccaregar $FILE"
	### NOTA: Recomendo por aqui a sua linha para restart do varnish, asism se der erro no reload, ele envia um restart
    exit 1
}

$VARNISHADM -T $HOSTPORT vcl.load reload$NOW $FILE || error
$VARNISHADM -T $HOSTPORT vcl.use reload$NOW || error

for i in `$VARNISHADM -T $HOSTPORT vcl.list |$GREP available |$AWK '{print $3}'`;do $VARNISHADM -T $HOSTPORT vcl.discard $i; done

echo Current configs:
$VARNISHADM -T $HOSTPORT vcl.list

Compilando ffmpeg-php nas ultimas versões do ffmpeg

A última versão do ffmpeg-php disponibilizada no sourceforge foi liberada em meados de 2008 e desde então não teve mais atualização, isso ocasiona erro ao compilar usando versões mais novas do ffmpeg, pois houveram mudanças nas chamadas de api do ffmpeg. (pelo menos foi a explicação que achei em alguns forums)

Eles tem uma versão “nigthly” que é trablahada diretamente no SVN, parece ter desenvolvimento ativo, visto que tem commits de “apenas” 2 meses atrás, o que não entendo é porque não lançam releases em cima desse svn…

Bem, de toda forma, a versão do svn compila perfeitamente nas versões mais novas do ffmpeg, processo de instalação abaixo:

cd /tmp/install
wget "http://ffmpeg-php.svn.sourceforge.net/viewvc/ffmpeg-php/trunk/ffmpeg-php/?view=tar" -O ffmpegphp-novo.tar.gz
tar xzvf ffmpegphp-novo.tar.gz
cd ffmpeg-php/
phpize
./configure
make && make install
ln -s /usr/local/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so /usr/local/lib/ffmpeg.so

Adicionar no php.ini:

Extension=ffmpeg.so

Procedimentos adicionais:
– Reiniciar apache
– Se estiver rodando qualquer tipo de php-cgi (apache, ngxin, lighttpd, etc) matar o php-cgi (incluindo o processo pai) e subir novamente os processos