Por que fgets pendurar em um determinado url em wamp, mas é bom em MAMP?
Pergunta
Eu tenho um script que lê feeds RSS usando fopen & fgets.
Ao tentar a alimentação em: http://rss.fok.nl/feeds/nieuws meus trava de script até o max_timeout do PHP é atingido.
A coisa é:
- funcionou perfeitamente (no mesmo url) até hoje.
- ele ainda funciona no meu servidor mac MAMP desenvolvimento.
- não funciona no servidor WAMP produção (php 5.2.8)
Eu tentei FREAD sem sucesso.
todas as idéias?
Solução
Bem, é mais uma solução do que uma resposta, mas eu tive que recorrer a ele. Eu usei o seguinte para passar a onda, usando esta função:
function curl_get_file_contents($URL)
{
$c = curl_init();
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_URL, $URL);
$contents = curl_exec($c);
curl_close($c);
if ($contents) return $contents;
else return FALSE;
}
Eu encontrei-o aqui: http: // il. php.net/manual/en/function.file-get-contents.php
btw, no caso de alguém quiser cavar mais fundo, de acordo com outros relatos de fgets pendurado, parece que tem algo a ver com o 'feof' ou a falta dela ...
Outras dicas
Talvez tentar depurar a conexão usando o Wireshark ( Ethereal ). Este deve dar-lhe a razão. Talvez o servidor está bloqueando seus pedidos devido ao user-agent.
Você pode baixar o arquivo manualmente na máquina Windows?