Artigo: Erro ao acessar um arquivo externo com o comando file_get_content - Gigasystems

PHP

Em por

erro-ao-acessar-um-arquivo-externo-com-o-comando-file_get_content
Erro ao acessar um arquivo externo com o comando file_get_content

Em algum momento necessitamos utilizar o comando file_get-contents para ler um determinado arquivo para manipularmos de alguma forma, mas nos deparamos com um problema que na maioria dos casos, não podemos modificar o arquivo php.ini para corrigir o problema, por não ter acesso ao arquivo no SERVIDOR.

erro-file-get-content

Um exemplo de uso é o botão de compartilhar do TWITTER com URL curta, utilizando o serviço do site bitly Developer, que seria usado file_get-contents($URL_consulta_API)  mas muitas vezes não funciona quando subimos a aplicação para o SERVIDOR, onde o mesmo funciona perfeitamente em LOCALHOST.

Mas porque isso acontece?

Esse problema acontece porque muitos SERVIDORES deixam desabilitados por motivos de segurança a opção de acesso a arquivos através de URL.

E como contornar essa situação?

Podemos fazer uso através da biblioteca CURL. Criando uma função alternativa para utilizar o file_get_contents, que ficaria da seguinte forma:

 public function getFileContent($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $contents = curl_exec($ch); if (curl_errno($ch)) { echo curl_error($ch); echo "\n "; $contents = ''; } else { curl_close($ch); } if (!is_string($contents) || !strlen($contents)) { echo "Failed to get contents."; $contents = ''; } return $contents; } 

Daí ao invés de usar:

 file_get_contents('//...sua-url-comprida-aqui...')

Usamos assim:

 getFileContent('//...sua-url-comprida-aqui...')

Lembrando que o módulo CURL também deve estar habilitado, mas isso é perfeitamente possível entrando em contato com o responsável do SERVIDOR, quando necessário.

Espero ter ajudado, pois tive um problemão com esse procedimento, fazendo com que tomasse muitos copos de café para distrair o nervosismo por parecer ser uma coisa simples e não conseguir fazê-lo.

Até a próxima ! =)

Olá, deixe seu comentário para Erro ao acessar um arquivo externo com o comando file_get_content

Enviando Comentário Fechar :/

Veja Também:

Artigos Relacionados a categoria: PHP

Soluções

...CURTIU? AINDA NÃO VIU NOSSO PORTFÓLIO?


Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite, veja agora mesmo nossos Cases de Sucesso e tenha seu site nos padrões atuais preparado para maioria dos dispositivos e navegadores.

Usamos cookies para manter o site seguro, registrar e personalizar sua navegação. Para mais detalhes sobre essa atividade, acesse nossa Politica de Privacidade

Entendi