http_build_query no PHP para queries

A função http_build_query irá gerar um string de consulta (query) com os dados informados no array de entrada da função.

Exemplo de http_build_query:

$arrQuery = array(
	'Titulo'	=> 'Dicas de PHP',
	'ProdutoID' => '1',
	'Sexo'		=> 'M',
	'DataNascimento' => '06/01/1990',
);

$strQuery = http_build_query( $arrQuery );

echo $strQuery; // Titulo=Dicas+de+PHP&ProdutoID=1&Sexo=M&DataNascimento=06%2F01%2F1990

A função pode ser muito útil para transição de dados com cURL no PHP. Quando existe a necessidade de transpor dados de um array, $_GET, $_POST ou object para outro servidor ou aplicação.

Tenha muito cuidado com algumas informações mais extensas utilizando http_build_query, pois a função pode acabar criando encode das informações e você ter dificuldades para recebe-lá e outra parte do script/projeto.

Para entender toda estrutura e variações da função, acessem a documentação do PHP: http://www.php.net/manual/pt_BR/function.http-build-query.php

number_format formatando número com PHP

Para formatar números decimais no PHP é muito fácil.

Podemos usar a função number_format, que irá funcionar perfeitamente para o caso.

Digamos que seja preciso formatar o número 1500 no formato 1.500,00. Este formato pode ser usado para valor monetário, por exemplo.
Para formatar o número com PHP, use o exemplo abaixo:

$numero = 1500;
echo number_format( $numero, 2, ',', '.' ); // saída 1.500,00

De acordo com o exemplo acima, definimos que o valor decimal será de duas casas decimais. Isso foi definido no segundo parâmetro da função.
No terceiro parâmetro é definido o símbolo que será usado para separar a casa decimal e no quarto parâmetro é definido o símbolo de separação do milhar.

Definição: number_format( float $numero, int $decimal, string $decimal_simbolo, string $milhar_simbolo );

Apostila de PHP

Está precisando de uma ajuda para iniciar no PHP?

Que tal consultar uma apostila de PHP? Neste post você pode baixar uma apostila criada pelo Prof. Cristiano Cachapuz e Lima.

Baixar apostila PHP.

Nessa apostila você irá encontrar diversos tópicos sobre PHP. Tipos de dados, Banco de dados, MySQL, estrutura de dados, configuração do PHP e mais.

Esperamos que te ajude!

Trabalhando com Hooks no Codeigniter

Os Hooks no Codeigniter são uma ótima ferramenta para que você possa modificar o funcionamento do framework sem mexer nos arquivos de core do sistema. Quando o Codeigniter é executado, ele inicia uma série de processos de acordo com o fluxo do aplicativo.

Com os Hooks, é possível criar ações para serem executadas em um estágio específico da aplicação. Um exemplo prático, é caso você queira executar uma ação após o Codeigniter carregar o construtor do controller.

Abaixo listamos todos os processo que podem ser interceptados, e qual o momento que cada é executado:

  • pre_system
    É chamado bem cedo durante a execução do sistema. Somente algumas configurações de benchmark e hooks foram carregadas neste momento. Nenhum processo de rotas ou outros foi executado.
  • pre_controller
    Chamado antes de qualquer controller de sua aplicação. Todas as classes de base, rotas e segurança foram executados neste momento.
  • post_controller_constructor
    Chamado depois do controller ser instanciado. Nenhum método do controller foi executado neste momento.
  • post_controller
    Chamado após o controller ser executado.
  • display_override
    Substitui a função _display() do sistema, usado para enviar a página finalizada para o navegador no final da execução do processo. Isso permite que você use a sua metodologia própria de exibição. Note que você vai precisar fazer referência ao superobjeto CI da seguinte maneira: $this->CI =& get_instance(). E depois os dados finalizados estará disponível chamando $this->CI->output->get_output().
  • cache_override
    Permite que você utilize sua própria função, em vez da _display_cache() na classe de saída. Isso permite que você utilize próprio mecanismo de exibição de cache.
  • post_system
    Chamado depois que a página final é processada e enviado para o navegador, no final da execução do sistema.

Para definir um novo Hook, vamos usar o arquivo application/config/hooks.php.
Através desse arquivo, vamos criar um array com os valores que desejamos executar.
Abaixo há um exemplo de como criar essa configuração:

$hook['post_controller_constructor'] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
 );

Com essa configuração acima, o Codeigniter tentará instanciar a classe MeuHook, no arquivo application/hooks/MeuHook.php, e executar a função minhaFuncaoHook, logo após o construtor do controller ser criado.

Ela pode ser útil para validação de acesso a este controller, por exemplo.

No caso de você desejar executar vários ganchos (Hooks), é só criar essas configurações em um array bidimensional, conforme abaixo:

$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks',
 'params' => array('cerveja', 'vinha', 'petiscos')
);
$hook['post_controller_constructor'][] = array(
 'class' => 'MeuHook',
 'function' => 'minhaFuncaoHook2',
 'filename' => 'MeuHook.php',
 'filepath' => 'hooks'
);

Não esqueça de habilitar os hooks no arquivos de application/config/config.php do CodeIgniter.

Escrevendo arquivos JSON com PHP

Para escrever JSON em PHP é muito fácil. Você pode converter facilmente objetos, strings ou arrays em conteúdo JSON.

Veja os exemplos abaixo:

<?php
$std = new stdClass();
$std->nome = 'Dicas de PHP';
$std->url = 'www.dicasdephp.com.br';
$std->data = '2012-06-17';
echo json_encode( $std );
?>

O resultado para o script acima será:

{"nome":"Dicas de PHP","url":"www.dicasdephp.com.br","data":"2012-06-17"}

No caso de um array, o resultado será o mesmo para objeto.

<?php
$array = array(
 'nome' => 'Dicas de PHP',
 'url' => 'www.dicasdephp.com.br',
 'data' => '2012-06-17',
);
echo json_encode( $array );
?>

Resultado:

{"nome":"Dicas de PHP","url":"www.dicasdephp.com.br","data":"2012-06-17"}

Se ficar com dúvidas, deixe um comentário!