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.

Qual é a sua opinião ou dúvida?