finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__constructCria uma instância de finfo

Descrição

Estilo procedural

finfo_open(int $flags = FILEINFO_NONE, ?string $magic_database = null): finfo|false

Estilo orientado a objetos (construtor):

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Esta função abre um banco de dados mágico e retorna a instância.

Parâmetros

flags

Uma ou disjunção de mais constantes Fileinfo.

magic_database

Nome de um arquivo de banco de dados mágico, geralmente algo como /caminho/para/magic.mime. Se não for especificado, a variável de ambiente MAGIC será usada. O banco de dados mágico incluído no PHP será usado se a variável de ambiente não estiver definida.

Passar null ou uma string vazia será equivalente ao valor padrão.

Valor Retornado

(Apenas no estilo procedural) Retorna uma instância de finfo em caso de sucesso, ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 Agora retorna uma instância de finfo; anteriormente, um resource era retornado.
8.0.3 O parâmetro magic_database agora pode ser nulo.

Exemplos

Example #1 Estilo orientado a objetos

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // retorna o tipo MIME, também conhecido como extensão mimetype

/* Obtém o tipo MIME de arquivo específico */
$nome_do_arquivo = "/usr/local/alguma_coisa.txt";
echo $finfo->file($nome_do_arquivo);

?>

Example #2 Estilo procedural

<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // retorna o tipo MIME, também conhecido como extensão mimetype

if (!$finfo) {
    echo "Falha ao abrir banco de dados fileinfo";
    exit();
}

/* Obtém o tipo MIME de arquivo específico */
$nome_do_arquivo = "/usr/local/alguma_coisa.txt";
echo finfo_file($finfo, $nome_do_arquivo);

/* fecha a conexão */
finfo_close($finfo);
?>

O exemplo acima produzirá:

text/plain; charset=us-ascii

Notas

Note:

Geralmente, usar o banco de dados mágico incluído no PHP (deixando o parâmetro magic_database e as variáveis de ambiente MAGIC indefinidos) é o melhor caminho a seguir, a menos que um banco de dados mágico personalizado seja necessário.

Veja Também