TransWikia.com

é correto unir arquivos de áudio utilizando fwrite() em PHP?

Stack Overflow em Português Asked on November 25, 2021

Estou desenvolvendo um script de um captcha simples em PHP e me desafiei a conseguir gerar um arquivo de áudio para ajudar pessoas com deficiências visuais.

Não sabia ao certo como fazer isso, mas criei um arquivo de áudio para cada letra do alfabeto e chamei-o de ‘nome da letra’.mp3 (exemplo: ‘w.mp3’), e, em um arquivo PHP chamado ‘audio.php’, designado para criar o arquivo de áudio final, eu peguei as letras do captcha e juntei o áudio de cada letra utilizando as funções file_get_contents() e fwrite(), nativas do PHP; para minha surpresa, funcionou exatamente como eu queria.

Minha pergunta é: apesar de ter funcionado, é correto fazer isso? Ler o conteúdo de um arquivo e escrevê-lo em outro é simples em arquivos de texto e similares, mas em arquivos mais complexos como áudios, tenho minhas dúvidas se é o ideal. Se sim, é recomendado?

audio.php:

<?php
    session_start(); //início da sessão
    $vetorLetras = str_split($_SESSION["captcha"]); //código do CAPTCHA
    $arquivo = "audios".DIRECTORY_SEPARATOR.session_id().".mp3"; //nome do arquivo a ser criado
    $f = fopen($arquivo, "a+"); //arquivo é criado
    for ($i = 0; $i < 5; $i++) {
        //a cada repetição o arquivo recebe o conteúdo do áudio de uma letra
        $x = file_get_contents("audios".DIRECTORY_SEPARATOR.$vetorLetras[$i].".mp3");
        fwrite($f, $x);
    }
    fclose($f); //arquivo é fechado
    //força-se o download do arquivo
    header("Content-Type: application/octet-stream");
    header("Content-Transfer-Encoding: binary");
    header("Content-disposition: attachment; filename="audio.mp3"");
    readfile($arquivo);
    //arquivo é excluído
    unlink($arquivo);
?>

Código fonte

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP