Olá pessoal tudo bem? Estou tentando fazer a cópia de uma imagem que está disponível na web e salvar em uma pasta no meu projeto. Essa imagem está sob protocolo SSL mas navegador consegue acessá-la normalmente. Mas o meu script php é bloqueado, e não entendo o porquê.
Segue o código que estou usando:
<?php
//error_reporting(E_ALL ^ E_DEPRECATED);
//ini_set('display_errors', 1);
//die('Script travado!');
$start = microtime(true);
set_time_limit(0);
function save_image($inPath,$outPath)
{ //Download images from remote server
$in = fopen($inPath, 'rb');
$out = fopen($outPath, 'wb');
while ($chunk = fread($in,8192))
{
fwrite($out, $chunk, 8192);
}
fclose($in);
fclose($out);
}
include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/classes/Rpi.class.php');
include_once ($_SERVER['DOCUMENT_ROOT'] . '/grpi/include/functions.class.php');
$func = new FuncoesAuxiliares();
$rpi = new Rpi();
if(!isset($_GET['num_processo'])) {
$rows = $rpi->Consulta('select num_processo, classe, especificacao from processos
order by num_processo ASC limit 1');
} else {
$rows = $rpi->Consulta("select num_processo, classe, especificacao from processos
where num_processo > '" . $_GET['num_processo'] . "' order by num_processo ASC limit 1");
}
$registros = 0;
$arrayInsert = array();
$qtd_caracteres_total = 14;
foreach ($rows as $rs) {
//$rs['num_processo']
$zeros = '';
$qtd_char_processo = strlen($rs['num_processo']);
//Fill zeros
for($i=0; $i < ($qtd_caracteres_total - $qtd_char_processo); $i++) {
$zeros .= '0';
}
echo('BR5' . $zeros . $rs['num_processo'] . '<br>');
$url = 'http://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'];
//Aqui tento acessar a imagem e salvar na pasta correspondente
save_image($url, __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg');
//copy('https://www.tmdn.org/tmview/trademark/image/BR5' . $zeros . $rs['num_processo'], __DIR__ .'/logo/' . $rs['num_processo'] . '.jpg');
$processo = $rs['num_processo'];
$registros++;
}
$registros = number_format($registros, 0, ',', '.');
// Display Script End time
$time_end = microtime(true);
//dividing with 60 will give the execution time in minutes other wise seconds
$execution_time = ($time_end - $start)/60;
//execution time of the script
echo '<b>Total Execution Time:</b> '. $execution_time .' Mins <hr><br><br>Registros: ' . $registros . '<br><br>';
echo("<a href='down_logo.php?num_processo=" . $processo ."' target='_self'>Próxima página</a><br><br>");
?>
O erro retornado é o seguinte:
Warning: fopen(): SSL: Connection reset by peer in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10 Warning: fopen(http://www.tmdn.org/tmview/trademark/image/BR500000825642590): failed to open stream: HTTP request failed! in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 10 Warning: fread() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 12 Warning: fclose() expects parameter 1 to be resource, boolean given in /home/storage/8/23/2c/euregistrogrpi/public_html/grpiv2/rpi/down_logo.php on line 16
Só que se você tentar acessar o endereço no browser, diretamente, a imagem aparece:
https://www.tmdn.org/tmview/trademark/image/BR500000825642590
Onde posso estar errando? Obrigado pela atenção de todos.