Ir ao conteúdo

Posts recomendados

Postado

pessoal, boa tarde!!

Estou precisando de uma classe/função ou alguma coisa do tipo que leia qualquer arquivo em binario, por exemplo eu tenho um arquivo de texto, abrir e vincular todo conteudo dele a uma variavel "$var_b", se eu fizer um print_r($var_b), queria obter um resultado proximo a (((((((((00110000 00110001 00110000 00110100 00110010 00110111 00110000 00110010 00001101 00001010 00110101 01111010 01111001 00111001 01100010 01101011))))))))))))))))))

Mas queria q funcionasse com qualquer arquivo, seja imagem, texto, video, .doc, .xls. e etc.
 

alguem tem alguma ideia?

Postado

Me desculpe antecipadamente por não ter tido tempo de testar isso em arquivos, porém acho que meu código abaixo vai te servir de base para sua finalidade, restando só implementar para a abertura de arquivos com php (fopen, fwrite, etc...) e jogar o conteúdo em uma variável que vai receber a string do arquivo aberto e o converter em dado binário, retornar o valor e salvar em outro arquivo(.dat ou .bin, etc...) 

 

<!DOCTYPE html>
<html lang="pt_BR">

<head>
<meta name="Author" content="Fábio S. Pedro"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Binario</title>
</head>

<body>
<!-- teste.php é o nome do arquivo php que colei este teste, portanto use o nome que quiser, mas lembre de alterar no ACTION do form -->
<form action="teste.php" method="get" enctype="multipart/form-data">

	<label><strong>Digite uma string</strong></label>  
    <input name="string" type="text">
    <button type="submit">Enviar</button>
</form>


<?php
  
	if($_GET){
		echo "<p>String em binário: </p>";
		
		$texto = $_GET['string']; 
		$numerosBinario = Array("0000", "0001", "0010", "0011", "0100", "0101","0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111");

		for ($i = 2;$i <=7;$i++){
			for ($j = 0;$j <=15;$j++){
				$binario[] = " ".$numerosBinario[$i]." ".$numerosBinario[$j]; 
			}
		}
		
		for ( $i=32; $i <= 126; $i++ ) {
				$glifos[] = chr($i);
		}

      	for($i = 0;$i <(strlen($texto));$i++){
			
			foreach ($glifos as $key => $value){
			
				if($texto[$i] == $value){
					echo $binario[$key]; 
				}
			}
		}
	}   
?>
<h4>Copie e cole o seu binário no link abaixo</h4>
<p>Tradutor binário<a href="https://www.invertexto.com/codigo-binario" target="_blank"> https://www.invertexto.com/codigo-binario</a></p>

</body>
</html>

Sobre a abertura e leitura de arquivos em PHP: https://www.ibm.com/developerworks/br/library/php-funcoes-de-leitura/index.html

 

Espero ter ajudado de alguma forma!

  • 2 semanas depois...
Postado

oi @fspjonny, obrigado pela resposta e ajuda, usei seu codigo e deu certo sim, como estou usando em linha de comando retirei todo html. agora consigo ver o binario de cada arquivo e trabalhar com ele de acordo com cada necessidade. Agora a segunda parte e acho que e a mais complicada, preciso gravar meu novo codigo binario em um arquivo, eu tenho uma string de "0101010" preciso que seja escrito no arquivo de forma que nao se transforme em texto. faz alguma ideia de como fazer?

Postado
11 horas atrás, ezequiel972 disse:

oi @fspjonny, obrigado pela resposta e ajuda, usei seu codigo e deu certo sim, como estou usando em linha de comando retirei todo html. agora consigo ver o binario de cada arquivo e trabalhar com ele de acordo com cada necessidade. Agora a segunda parte e acho que e a mais complicada, preciso gravar meu novo codigo binario em um arquivo, eu tenho uma string de "0101010" preciso que seja escrito no arquivo de forma que nao se transforme em texto. faz alguma ideia de como fazer?

a saída do binário vai ser mesmo em um arquivo ou será um banco de dados?

adicionado 2 minutos depois

outra coisa importante que esqueci de perguntar, se a saída for realmente para um arquivo, qual é a extensão que voce quer nesse arquivo?

Postado

@fspjonny boa tarde!! e obrigado novamente pela ajuda. entao, a saida vai ser em arquivo sim onde a extensão nao importa para mim,uma vez que este sera lido de forma binaria novamente. preciso escrever o binario diretamente, porque se escrevo o numero 88 como texto ele ficaria como (00111000 00111000) mais preciso que ele fique como (1011000)

Postado
1 hora atrás, ezequiel972 disse:

@fspjonny boa tarde!! e obrigado novamente pela ajuda. entao, a saida vai ser em arquivo sim onde a extensão nao importa para mim,uma vez que este sera lido de forma binaria novamente. preciso escrever o binario diretamente, porque se escrevo o numero 88 como texto ele ficaria como (00111000 00111000) mais preciso que ele fique como (1011000)

 

Eu acho que entendi voce quer gravar mesmo o Binário em arquivo, então veja se é isso aqui

 

<?php
    
$textoBinario = "0011 1000 0011 1000"; //88 em binário, mas podem ser outros valores convertidos, peguei como exemplo apenas!
    
$abreArquivo = fopen("binario".date("YmdHis").".bin", "a"); //vai escrever o nome do arquivo com ano-mês-dia-hora-segundos
$escreveArquivo = fwrite($abreArquivo, $textoBinario);
fclose($abreArquivo);

echo "Arquivo binário foi gerado com sucesso!";
?>

A Cada vez que voce salvar um arquivo ele vai ser gerado neste padrão binario20190227150114.bin, onde cada número corresponde ao Ano/Mês/Dia/Hora/Minuto/Segundo.

 

Assim a recorrência de uso dessa função vai gerar arquivos com data e hora de conversão e não corre o risco de misturar as informações convertidas para binário dentro de um mesmo arquivo.

Postado

@fspjonnyboa noite!!

Infelizmente nao e isso que preciso, porque assim vou ter um arquivo de texto cheio de 01, eu preciso gravar por exemplo o binario (00001101 00001010), se eu abrir esse arquivo como texto vou ver apenas dois pontos consecutivos(..), porque esses caracteres são ilegiveis. Deu pra entender? Eu ja procurei bastante na internet e nao achei nada, acho que nao da pra fazer com php. Direto no terminal ubuntu eu ate conseguiria, mais pra isso primeiro eu  preciso converter tudo pra hexadecimal, para depois  gravar, mais assim meu arquivo fica corrompido. Fiz testes com varios tipos de arquivos, se eu pegar o binario depois de processado pelo php e gravar usando o Hex Editor Neo funciona perfeitamente, mais nao posso converter pra decimal ou hexadecimal que fica corrompido.

 

mais uma vaz muito grato pela atenção.

Postado
6 minutos atrás, ezequiel972 disse:

@fspjonnyboa noite!!

Infelizmente nao e isso que preciso, porque assim vou ter um arquivo de texto cheio de 01, eu preciso gravar por exemplo o binario (00001101 00001010), se eu abrir esse arquivo como texto vou ver apenas dois pontos consecutivos(..), porque esses caracteres são ilegiveis. Deu pra entender? Eu ja procurei bastante na internet e nao achei nada, acho que nao da pra fazer com php. Direto no terminal ubuntu eu ate conseguiria, mais pra isso primeiro eu  preciso converter tudo pra hexadecimal, para depois  gravar, mais assim meu arquivo fica corrompido. Fiz testes com varios tipos de arquivos, se eu pegar o binario depois de processado pelo php e gravar usando o Hex Editor Neo funciona perfeitamente, mais nao posso converter pra decimal ou hexadecimal que fica corrompido.

 

mais uma vaz muito grato pela atenção.

Realmente então não pesquei sua dúvida ainda, mas da forma que fiz se eu abror o arquivo em um editor de texto como o notepad++ é isso abaixo que eu vejo do arquivo que está gravado o número 88 gravado em binário e não apenas pontos consecutivos. Veja:

image.thumb.png.a4560986144db81192b484afe124471b.png

Postado
4 minutos atrás, ezequiel972 disse:

@fspjonny  porque foi gravado a string de texto puro "0011 1000 0011 1000" e nao o codigo binario,

 

Eu precisaria ver a estrutura de um arquivo binário a que voce se refere para entender o resultado que preciso ter, pois assim não consigo deduzir o resultado esperado, porque inclusive esse arquivo que eu gero, no meu PC é reconhecido como binário, não só pela extensão dele .bin, como pelo conteúdo dele que no meu editor hexadecimal o lê e o converte para hexa 58 e binário 1011000.

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!