Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

augustoacf

exibir um arquivo txt no computador pelo php

Recommended Posts

bom dia,

preciso importar um arquivo txt no computador local , mais nem o basico de exibir o arquivo no video não estou conseguindo.

Por favor alguem poderia me orientar onde esta errado . obrigado

 

<?php

$ponteiro = fopen('c:\site.txt','r');
            
while (!feof ($ponteiro)) {
  $linha = fgets($ponteiro,4096);

  echo $linha."<br>";
}

fclose ($ponteiro);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ter algo errado relacionado a permissão ...

 

Já tentou jogar jogar direto o arquivo e utilizar o caminho relativo?

 

 

Ex:

 

 

 

Jogar o seu site.txt no mesmo lugar do seu script ?

 

ex:

 

/pasta

-index.php

-site.txt

 

E alterar o seu conteudo do index.php para:

<?php

$ponteiro = fopen('site.txt','r');
            
while (!feof ($ponteiro)) {
  $linha = fgets($ponteiro,4096);
  echo $linha."<br>";
}
fclose ($ponteiro);

 

Obs:

 

Repare que não utilizei o caminho completo 'c:\site.txt', apenas movi o site.txt para o mesmo lugar onde está executando o script em php...

No meu contexto  dentro da pasta:

 

C:\wamp64\www\stream

 

Ficou:

index.php

site.txt

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fazia isso, eu mandava o arquivo para uma pasta do site e depois leia o arquivo, sendo que , uns dos meus clientes estava com virus, e na hora que o programa mandou o arquivo para a pasta do ftp o virus entrou. 

por isso que eu estava pensando em ler  o arquivo sem copiar o mesmo para a pasta.

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ativou os erros?

<?php

ini_set('display_errors', true);
error_reporting(E_ALL);

 

Outra coisa...

 

Em produção,

O Servidor é Windows ou Linux?

 

 

Quando você acessa da primeira maneira qual erro que exibe?

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, talvez seja uma bobeira minha, mas faz muito tempo que não mexo com windows... Se não me falha a memoria, no windows você precisa escapar a barra, no caso ficaria assim:
 

$ponteiro = fopen('c:\\site.txt','r');

 

Ou usar a barra padrão unix / e deixar o PHP se virar

 

$ponteiro = fopen('c:/site.txt','r');

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

To operando em Windows 7 e funcionou em todos os casos:

$ponteiro = fopen('c:\arquivo.txt','r');
$ponteiro = fopen('c:\\arquivo.txt','r');
$ponteiro = fopen('c:/arquivo.txt','r');

Curioso neh? kkkk

 

 

 

Acredito que é um problema de permissão mesmo do php/apache não conseguir entrar dentro da Raiz (C:\)

Ou vai ver o servidor é Linux msm  HUSAHUASHUAS 

 

Vamos esperar .

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas o seu teste não conta, na mão de quem sabe funciona de qualquer jeito, funcionaria até assim:
 

$ponteiro = fopen('c:****arquivo.txt','r'); huahuahua

Brincadeira a parte, se não tiver alguma particularidade com a versão do PHP, no caso do separador de diretorio, então ele fica descartado mesmo :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilizando o seu não foi...

( ! ) Warning: fopen(c:****arquivo.txt): failed to open stream: No error in C:\wamp64\www\stream\index.php on line 6

HUASHUASHU

 

Os testes que efetuei aqui foram nas versões do PHP:

5.5.12
5.6.25
7.0.10

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Fernando Rafael
      Boa tarde, estou com um problema ao tentar usar o CMD para imprimir o conteúdo de um arquivo TXT, estou usando o comando:
       
      PRINT /d:"\\cxgeral\Brother HL-1210W series" "imprimir.txt"  
      A impressora responde e faz o processo de impressão, porém a página sai em branco, usando este mesmo comando em uma impressora de pedido (Daruma DR800, Epson T20X, Elgin i9) funciona normalmente. mas em uma impressora comum fica em branco, sei que as impressoras na qual deram certo permitem impressão escrevendo direto na porta na qual estão instaladas. Mas a minha "Brother Hl-1210W" é uma impressora laser A4.
       
      Agradeço pela atenção.
       
       
      visite: www.sisnorg.com
    • Por Gilberto Jr
      Olá, boa tarde.
      Tudo bem?
       
      Preciso de uma ajuda aqui.
       
      Seguinte, através desse código eu consigo ler as informações que esta dentro do arquivo txt.
      <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>FileAPI HTML5</title> <style type="text/css"> #filecontents { border: double; overflow-y: scroll; height: 400px; } </style> </head> <body> Por favor selecione arquivo que será lido:<br /> <input type="file" id="txtfiletoread" /><br /> <div>Conteúdo do arquivo:</div> <div id="filecontents"> </div> <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> </body> </html> So que o arquivo vem separado por virgulas. Eu quero substituir todas as virgulas por ponto e virgula. Se eu usar dessa forma, ele altera a virgula para ponto e virgula da primeira linha.
      <script> window.onload = function () { //Check the support for the File API support if (window.File && window.FileReader && window.FileList && window.Blob) { var fileSelected = document.getElementById('txtfiletoread'); fileSelected.addEventListener('change', function (e) { //Set the extension for the file var fileExtension = /text.*/; //Get the file object var fileTobeRead = fileSelected.files[0]; //Check of the extension match if (fileTobeRead.type.match(fileExtension)) { //Initialize the FileReader object to read the 2file var fileReader = new FileReader(); fileReader.onload = function (e) { var pontovirgula = ";"; var virgula = ","; var fileContents = document.getElementById('filecontents'); fileContents.innerText = fileReader.result.replace(virgula, pontovirgula).replace(virgula, pontovirgula); } fileReader.readAsText(fileTobeRead); } else { alert("Por favor selecione arquivo texto"); } }, false); } else { alert("Arquivo(s) não suportado(s)"); } } </script> 7909377852089;1;8380 7909377852133,1,8380 7909377820729,2,8380 7909377820736,2,8380 7909377820743,2,8380 E também, o ultimo valor eu preciso separar os centavos por , virgula.
       
      Arquivo deve ficar dessa forma quando mostrado na pagina.
       
      7909377852089;1;83,80
      7909377852133;1;83,80
      7909377820729;2;83,80
      7909377820736;2;83,80
      7909377820743;2;83,80
       
      Ou seja, contando da direita para esquerda, as duas primeiras posições é o centavos.
       
      Se alguém puder me ajudar, ficarei muito grato.
       
      Att;
      Gilberto Jr
    • Por pandinha_000
      Olá,
      Estou desenvolvendo um código em c++ utilizando manipulação de arquivos .txt (não por ponteiros), e gostaria de saber como fazer para que o algoritmo "pule" a primeira linha em branco do meu arquivo e passe já para a próxima, com dados válidos (na leitura). A propósito, existe a possibilidade de, ao escrever no arquivo, essa primeira linha em branco não exista?
      Desde já agradeço.
    • Por Daniel Tenorio
      Saudações amigos,
      Minha tabela possui um campo numérico “peso”
      Preciso ler um arquivo txt que está na minha máquina e que contém apenas uma linha com o peso no formato “999999”. Preciso atribuir esse valor no campo do formulário.
      Um detalhe, eu preciso que funcione sem ação do usuário para selecionar o arquivo na pasta, ou seja, que o valor seja atribuído automaticamente ao campo, porém para isso, eu preciso colocar dentro do código (em uma variável) o caminho do arquivo. Ou ao menos se alguém conseguir fazer que funcione com um botão ao lado do campo com a ação do usuário apenas para clicar no botão retornando o valor do txt ao campo já ajudaria muito.
      Consegui fazer o código em anexo funcionar, porém gostaria do preenchimento automático do campo.

    • Por felipems98
      Olá, esse e meu primeiro post no forum, estou com problema para manipular dados recebidos de um arquivo
      Eu quero capturar esses dados e salvar em um variavel, podem com o fgets() eu so consigo printar na tela pois quando vai passar pra outra variavel ele so pega o ultimo caracter.
      Segue a baixo o codigo:
      void main(){ FILE *pont_arquivo; char caminho[100]; char tx[100]; //char c; char texto[100]; int i; //define e abre o arquivo que será formatado printf("coloque o caminho do arquivo que queira abrir\n"); gets(caminho); pont_arquivo = fopen(caminho, "r"); if (pont_arquivo == NULL){ printf ("ERRO: arquivo não encontrado ou sem permissão de acesso.\n"); exit(0); } printf("arquivo aberto.\n"); while(fgets(tx, 100, pont_arquivo) != NULL){ for( i=0; i< sizeof(tx); i++) texto[i] = tx[i]; } fclose(pont_arquivo); printf("%s", texto); } O print consegue retornar todos os valores do arquivo mas não consigo passar eles para uma variável e tratar dentro do código.
      ja tentei com strcpy e esse exemplo eu mandei com for pra atribuir um a um os dados, mas não consegui com nenhum dos dois.
      A baixo tem os dados do arquivo txt:
      teste{ sjdoasijd,xy jsioadja,xy jsiadj,xy ois,xy djsia,xy dijodajsi,xy jiosjodia,xy jbf23,xy 21,xy 21983,xy moisdoia,xy mh8293,xy ajksnd,xy ioaasd,xy }  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.