drk7 0 Denunciar post Postado Abril 17, 2009 Oi. Estou tentando ler um arquivo externo e não estou conseguindo. Já tentei ler o arquivo com os métodos file, fopen e readfile. Arquivo local eu consigo, mas externo não. Não seria assim por exemplo: $caminho = "http://endereco.com/a.xml"; $xml = simplexml_load_file('$caminho'); //ou $xml2 = fopen("$caminho", "r") Isso tá errado? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 Qual é o problema? Dá erro? Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 ele não encontra o arquivo. No script eu fiz uma verificação, e ele imprime se encontrou ou não. Local ele encontra, externo não. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 allow_url_fopen está em on no php.ini? Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 Não sei, mas o código, a princípio era isso mesmo? Não tenho problemas para acessar sites externos, redirecionar páginas e tal. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 na verdade nem precisa usar simple_xml se você quer simplesmente exibir o conteúdo. Teste isto: $caminho = "http://endereco.com/a.xml"; echo file_get_contents( $caminho ); E veja se allow_url_fopen está em on. Se estiver off, você não vai conseguir acessar uma URL externa. Aí terá de usar cURL. Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 Funcionou Beraldo. Agora o problema é o seguinte: quando carrego o arquivo XML, pelo simplexml_load_file, ele diz que o objeto não pode ser convertido p/ uma String. A url que estou tentando aceesar é essa: RSS UOL Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 Aqui funcionou 100%: $url = "http://rss.noticias.uol.com.br/ultnot/index.xml"; $xml = simplexml_load_file( $url ); echo $xml->channel->title; Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 Tirando a verificação, dá 1 warning e um erro: Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "$caminho" in G:\\leXML_cls.php on line 9 UOL Notícias Catchable fatal error: Object of class LeXML could not be converted to string in G:\\index.php on line 155 Só que mostra o titulo. Tu acha que deve ser o allow_url_fopen do php.ini? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 tente algo assim: $url = "http://rss.noticias.uol.com.br/ultnot/index.xml"; $content = file_get_contents( $url ); $xml = simplexml_load_string( $content ); echo $xml->channel->title; Se o file_get_contents funcionar, o allow_url_fopen está em on. Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 Agora mostrou isso e deu só esse erro: UOL Notícias Catchable fatal error: Object of class LeXML could not be converted to string in G:\index.php on line 155 Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 17, 2009 Esse erro não é da leitura. Você fez algo errado ao instanciar a classe LeXML, provavelmente. Você deve estar usando a variável alocada para o objeto para receber a string. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Abril 17, 2009 aparentemente é algum erro no seu código pegue o exemplo que o Beraldo postou e teste num arquivo novo separado dos demais, apenas para testar e veja o que retorna. Apenas pra ter certeza absoluta de que o erro está no script da sua página "g:/index.php" pela mensagem de erro parece estar tentando realizar alguma operação de strings para um objeto por isso ocorre o erro Compartilhar este post Link para o post Compartilhar em outros sites
drk7 0 Denunciar post Postado Abril 17, 2009 Valeu Beraldo. Era esse mesmo o problema. Compartilhar este post Link para o post Compartilhar em outros sites