Estou planejando usar o PHP para um requisito simples. Preciso fazer o download de um conteúdo XML de um URL, para o qual preciso enviar uma solicitação HTTP GET para esse URL.
Como faço isso em PHP?
A menos que você precise mais do que apenas o conteúdo do arquivo, você poderá usá-lo file_get_contents
.
$xml = file_get_contents("http://www.example.com/file.xml");
Para algo mais complexo, eu usaria cURL .
failed to open stream: HTTP request failed!
file_get_contents
não permite que você faça a solicitação com cookies, cabeçalhos e outras coisas personalizadas que um navegador normalmente envia; portanto, você pode não obter a resposta que estava procurando. Nesse caso, seria melhor usar CURL de qualquer maneira. (Mas isso não é o caso do OP.)Para solicitações GET / POST mais avançadas, você pode instalar a biblioteca CURL ( http://us3.php.net/curl ):
fonte
file_get_contents()
. Uma sequência simples de 4 letras levou cerca de 10 segundos, enquanto a curvatura levou um máximo mais razoável de ~ 1 segundo.http_get
deve fazer o truque. As vantagens dohttp_get
excessofile_get_contents
incluem a capacidade de exibir cabeçalhos HTTP, acessar detalhes da solicitação e controlar o tempo limite da conexão.fonte
Lembre-se de que, se você estiver usando um proxy, precisará fazer um pequeno truque no seu código php:
fonte
Dependendo da configuração do php permitir a abertura de URLs, você também pode simplesmente abrir a URL com os argumentos get na string (como http://example.com?variable=value )
Editar: relendo a pergunta Não tenho certeza se você deseja passar variáveis ou não - se não estiver, pode simplesmente enviar a solicitação fopen contendo http://example.com/filename.xml - fique à vontade ignorar a variável = parte do valor
fonte
Eu gosto de usar o fsockopen open para isso.
fonte
Por outro lado, o uso da API REST de outros servidores é muito popular no PHP. Suponha que você esteja procurando uma maneira de redirecionar algumas solicitações HTTP para outro servidor (por exemplo, obtendo um arquivo xml). Aqui está um pacote PHP para ajudá-lo:
Então, obtendo o arquivo xml:
fonte
O Guzzle é uma biblioteca muito conhecida, que torna extremamente fácil realizar todo tipo de chamadas HTTP. Consulte https://github.com/guzzle/guzzle . Instale com
composer require guzzlehttp/guzzle
e executecomposer install
. Agora, o código abaixo é suficiente para uma chamada http get.fonte