"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como acelerar a recuperação do tamanho da imagem em PHP: file_get_contents é a solução?

Como acelerar a recuperação do tamanho da imagem em PHP: file_get_contents é a solução?

Publicado em 2024-11-05
Navegar:432

How to Speed Up Image Size Retrieval in PHP: Is file_get_contents the Solution?

Como obter o tamanho da imagem extremamente rápido em PHP usando file_get_contents

Obter dimensões de imagem para várias imagens remotas pode ser uma tarefa demorada, especialmente usando getimagesize. Aqui está uma abordagem alternativa que aproveita file_get_contents para recuperar rapidamente tamanhos de imagem:

Usando uma função PHP personalizada

A seguinte função ranger() lê um intervalo de bytes específico de um controle remoto imagem, permitindo extração rápida de tamanho:

function ranger($url){
    $headers = array(
    "Range: bytes=0-32768"
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($curl);
    curl_close($curl);
    return $data;
}

Extraindo o tamanho da imagem

Depois que os dados da imagem forem obtidos, você pode determinar suas dimensões usando imagecreatefromstring() e funções integradas de análise de imagem:

$im = imagecreatefromstring($raw);
$width = imagesx($im);
$height = imagesy($im);

Medição de desempenho

Usando este método, o processo de obtenção das dimensões da imagem é significativamente mais rápido:

$start = microtime(true);

$url = "http://news.softpedia.com/images/news2/Debian-Turns-15-2.jpeg";

$raw = ranger($url);
$im = imagecreatefromstring($raw);

$width = imagesx($im);
$height = imagesy($im);

$stop = round(microtime(true) - $start, 5);

echo $width." x ".$height." ({$stop}s)";

Resultados do teste

A imagem de exemplo levou apenas 0,20859 segundos para ser recuperada suas dimensões. O carregamento de 32 KB de dados provou ser eficaz nesta abordagem. Ao aplicar essa técnica, você pode obter rapidamente tamanhos de imagens remotas, minimizando os gargalos normalmente encontrados com getimagesize.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3