1
resposta

[Dúvida] Pedir a senha ao usuário para abrir o .zip

Boa noite Vinicius! Tudo bem? Tentei inovar e não somente abrir o zip informando a senha no código mas sim pedindo a senha ao usuário pelo console.

<?php

/**
 * Solicitando a senha para abrir o zip.
 */
echo "Informe a senha para abrir o arquivo zip:".PHP_EOL;
$senha = trim(fgets(STDIN));

/**
 * Criando a stream com a senha informada pelo usuário.
 */
$context = stream_context_create([
    "zip" => [
        "password" => $senha
    ]
]);

/**
 * Exibo o conteúdo do arquivo no console para o usuário.
 */
$lista = file_get_contents("zip://Arquivos/Arquivos.zip#MyNewArquive.txt", false, $context);
echo $lista.PHP_EOL;

Até então está tudo bem. O problema é quando a senha que estou passando não é a esperada. Como eu poderia fazer para validar se a senha está errada e o arquivo não pode ser aberto?

1 resposta

Onde está a dificuldade? A validação pode ser feita de várias formas dependendo da sua intenção. Se você quer validar a senha a partir do resultado do output, você deve construir o código validando o conteúdo da variável $lista. Se você quer validar a senha antes de tentar acessar o arquivo, você deve colocar uma condicional após pegar a senha, ao receber ela ali na entrada padrão (STDIN).