Categorias
Besteiras

Bicicleta 2.0

Olha só que besteira, mas estes dias achei a Bicicleta 2.0.

É isto mesmo, é uma bicicleta nos padrões que a gente conhece para design na web 2.0 (gargalhadas )

Veja a imagem:

Categorias
Dica PHP

[ Dica PHP ] Imagens aleatórias em PHP

Já pensou em exibir imagens aleatórias em um site no carregar da página?

Existem várias formas de se fazer isto, mas a uma bem simples é criar um array com os nomes da imagem e sortear quem vai aparecer.

Vamos lá.



<?php

/**

 * Script para listar uma imagem aleatóriamente

 */

/**

 * Indexa a lista de imagens

 * a ser sorteada aleatoriamente

 * @var $imagem array

 */

$imagem = array(

    'nome-01.jpg',

    'nome-02.jpg',

    'nome-03.jpg',

    'nome-04.jpg',

    'nome-05.jpg'

);





/**

 * count() conta a quantidade de chaves no array

 * @var $totalImagens int

 */

$totalImagens = count( $imagem );





/**

 * mt_rand() sorteia um numero

 * entre 1 e o total de imagens no array

 * @var $numeroRandomico int

 */

$numeroRandomico = mt_rand( 1, $totalImagens );





/**

 * Exibição Teste

 */

printf(

    '<img src="%s" />',

    $imagem[ ( $numeroRandomico - 1 ) );





/**

 * Fim do script

 */

Categorias
PHP

O que posso definir no ini_set() do php?

Bom, estes dias eu pensei numa aplicação mais robusta que precisasse de alterações em muitas configurações do php, no entanto, tive que considerar o fato de muitos desenvolvedores não terem acesso ao arquivo php.ini, e me lembrei de uma situação que vivi alguns meses atrás: “O que posso definir no ini_set()“.

Para mais informações sobre ini_set, acesse a documentação da mesma em http://www.php.net/manual/pt_BR/function.ini-set.php.

Então, vamos explicar algumas coisas.

Diretivas do PHP

Diretivas são informações, tipo constantes, que o compilador usa para saber o que deve fazer com o código em questão na hora de realizar algum processamento. Geralmente, estas diretivas ficam em um arquivo de configuração (“.ini”), e que o administrador do sistema pode modificar para se adaptar às suas necessidades de processamento.

No php.ini o administrador pode modificar muita coisa da linguagem, e o desenvolvedor, pode usar da função ini_set() para alterar algumas configurações básicas dentro de um arquivo bootstrap ( bootstrap é um arquivo com algumas configurações da aplicação que pertencem propriamente ao PHP ou à aplicação em si ).

A chamada é simples:



init_set('diretiva', 'valor');

O uso mais comum é de display_errors.

Entrentanto, se quiséssemos modicar outras diretivas, quais poderíamos? Bom, ai está a questão, e precisamos entender como o PHP define as prioridades delas.

Existem basicamente 4 tipos de diretivas no PHP, são elas, que a referência define como “modos”:

PHP_INI_USER – A entrada pode ser definida nos scripts do usuário (como com ini_set()) ou no registro do Windows

PHP_INI_PERDIR – A entrada pode ser definida no php.ini, .htaccess ou httpd.conf

PHP_INI_SYSTEM – A entrada pode ser definida no php.ini ou httpd.conf

PHP_INI_ALL – Entrada pode ser definida em qualquer lugar

Então já temos uma luz ai. PHP_INI_USER e PHP_INI_ALL possuem permissão para serem definidas num arquivo bootstrap ou em qualquer arquivo php.

Onde achar estas diretivas?

O PHP possui um lista de diretivas, bem generosa, que pode ser acessada neste link do manual:

http://www.php.net/manual/pt_BR/ini.list.php

Olhar para esta lista não vai ajudar em nada, se não entender para o que serve, e onde aplicá-las, mas quanso se sabe o que quer, faz sentido!

Categorias
Dica PHP

[ Dica PHP ] Como encontrar strings dentro de string ou arquivo

Eh, coisa besta!

Estes dias precisei disto, e embora, simples, tem quem não saiba por não dominar expressões regulares.





<?php



/*

 Procura todas as ocorrências

 dentro do string passado

 no segundo parametro

*/



$string = "inicio Esta é uma string a ser inspecionada fim"; // poderia ser um arquivo file_get_contents('nome-arquivo.extensao')



preg_match_all("/inicio(.*)fim/", $string, $resultados );



foreach ( $resultados[1] as $resultado ) {

print $resultado . '<br />';

}



// fim