Categorias

Funções da categoria Miscelânea do PHP

Constantes:

constant – Retorna o valor de uma constante
constant ( string $name )
Esta função retorna o valor de uma constante indicada pelo parâmetro name e é útil quando se deseja o valor de uma constante, mas não sabe o seu nome.

define – Define uma constante.
define ( string $name , mixed $value [[, bool $case_insensitive ]] )
O nome da constante é dado pelo parâmetro name ; o valor é dado por value. O terceiro parâmetro (opcional) significa que, se é dado o valor TRUE, a constante será definida como case-insensitive (diferencia maiúsculas de minúsculas). O padrão é case-sensitive.

defined – Confere se uma constante existe
defined ( string $name )
Retorna TRUE se a constante dada pelo parâmetro name já foi definida, se não, retorna FALSE. Se você este querendo testar a existência de uma variável, use isset() (a função defined() aplica-se somente a constantes). Se você quiser saber se uma função existe use function_exists().

<?php
define(“MAXSIZE”, 100);
echo MAXSIZE;
if(!defined(‘MAXSIZE’)){
echo constant(“MAXSIZE”); // mesma coisa que a linha anterior
}else{
echo “Constante MAXSIZE não está definida!”;
}
?>

Controle de Script:

exit – Mostra uma mensagem e termina o script atual
exit ([[ string $status ]] )
exit ( int $status )
A função exit() termina a execução do script. Ela mostra o parâmetro status antes de terminar o script.

Se status é um integer (número inteiro), este valor será usado como estado se saída (não é impresso). Estado de saída deve estar no intervalo de 0 a 254; o estado de saída 255 é reservado pelo php e não deve ser usado. O estado 0 é usado para terminar o programa de maneira bem sucedida.

Se status é uma string, ela é impressa.

die – Equivalente a exit()

Exemplo de utilização de exit() e die();

<?
mysql_connect() or die(“Erro ao tentar conectar no servidor!”);
mysql_connect() or exit(“Erro ao tentar conectar no servidor!”);
?>

Em ambas as linhas acima, o resultado será o mesmo: caso ocorra um erro, será impressa a mensagem de erro.

sleep – Atrasa a execução do script
sleep ( int $seconds )
Esta função atrasa a execução do script de acordo com a quantidade de segundos dados no parâmetro seconds.

time_sleep_until – Paralisa o script até um tempo especificado
time_sleep_until ( float $timestamp )
Similar à função sleep(), porém esta paralisa o script até o especificado timestamp. Útil para determinar o disparo do script em determinada data-horário.

Trabalhando com código-fonte

eval – Executa uma string como código PHP
eval ( string $code_str )
A função eval() executa a string dada no parâmetro code_str como se fosse um código PHP. Isto é útil para guardar código em um campo de texto de um banco de dados para execução posterior.

Entretanto, é preciso lembrar que, quando se usa eval(), a string passada deve ser código PHP valido, incluindo terminar os comandos com ponto-e-vírgula e escapar caracteres em code_str. Também se lembre que as variáveis que tenham seus valores em eval() irão reter estes valores para o resto do script.

<?php
$string = ‘taça’;
$name = ‘café’;
$str = ‘Esta é uma $string com o meu $name nela.’;
echo $str. “n”;
eval(“$str = “$str”;”);
echo $str . “n”;
?>

O exemplo acima irá mostrar:
Esta é uma $string com o meu $name nela.
Esta é uma taça com o meu café nela.

highlight_file – Destaca a sintaxe de um arquivo
highlight_file ( string $filename [[, bool $return ]] )
Esta função mostra uma versão do código contido em filename com a sintaxe destacada usando as cores definidas pelo destacador de sintaxe do PHP.

Se o segundo parâmetro return for TRUE então highlight_file() irá retornar o código como uma string ao invés de mostrá-lo. Se o segundo parâmetro não for TRUE então highlight_file() irá retornar TRUE se funcionar, FALSE em caso de falha.

Para configurar uma url que possa fazer o destaque da sintaxe de qualquer script que você passar para ela, é preciso usar a diretiva “ForceType” no Apache para gerar um bom modelo de URL, e usar a função highlight_file() para mostrar o código com uma boa aparência.

Adicione no httpd.conf o seguinte:

<Location /source>
ForceType application/x-httpd-php
</Location>

Depois é só chamar o arquivo, com o caminho completo, na função que ela retornará o código-fonte do arquivo com a sintaxe destacada (colorida).

highlight_string – Destaque da sintaxe de uma string
highlight_string ( string $str [[, bool $return ]] )
Semelhante à função highlight_file(), porém, mostra o destaque da sintaxe para o parâmetro str, que é uma string (exemplo: $str = “<? echo ‘teste’; ?>”) usando as cores definidas para o destacador de sintaxe do PHP.

php_check_syntax – Confere a sintaxe PHP de um determinado arquivo e executa
php_check_syntax ( string $filename [[, string &$error_message ]] )
Verifica a sintaxe de um arquivo .php passado em filename. Útil para verificar a sintaxe de arquivos editados em editores on-line.

php_strip_whitespace – Retorna o código com comentários e espaços em branco removidos
php_strip_whitespace ( string $filename )
Filtra o código-fonte do PHP retornando o código-fonte sem comentários PHP e espaços em branco.

Útil para reduzir o tamanho dos arquivos que serão utilizados no servidor, reduzindo o tempo de processamento e o seu tamanho. O código-fonte filtrado será retornado em caso de sucesso, ou uma string vazia em falha.

Gerando id único:

uniqid – Gera um ID único
uniqid ( string $prefix [[, bool $lcg ]] )
Gera um identificador único baseado no tempo atual em milionésimos de segundo. O um prefixo pode ser usado se você gera identificadores em vários servidores simultaneamente (pode acontecer de gerar o identificador no mesmo milionésimo de segundo). Prefix pode ter até 114 caracteres.

Se o parâmetro lcg (opcional) for TRUE, uniqid() irá adicionar a entropia “LCG combinada” ao final do valor retornado, o que deve fazer o resultado mais único.

Com o parâmetro prefix vazio, a string retornada terá 13 caracteres. Se o parâmetro lcg for TRUE, terá 23 caracteres.

<?php
// sem prefixo
$token = md5(uniqid(“”));//combina uniqid() com md5()
// melhor, difícil de adivinhar
$better_token = md5(uniqid(rand(), true));//combina md5(), com, uniqid() com um prefixo randômico
?>

Isto irá criar um identificador de 32 caracteres(a 128 bit hex number) que é extremamente difícil de prever.

Estas são algumas das funções (não todas) da seção Miscelânea do manual do PHP. Com elas já dá pra fazer várias “coisinhas legais” nos seus códigos.