PHP

Em por

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 ! wink

Veja Também:

Artigos Relacionados a categoria: PHP

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

Enviando Comentário Fechar :/

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

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora