Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal,
uso um webservice para previsao do tempo. No entanto, as vezes o webservice sai do ar e meu site fica parado. Como verificar se o webservice esta funcionando.
estou usando o seguint codigo para acessar o xml
$obj = simplexml_load_file($url);
notem que $url = http://webservice.com/xml/key=XXX
outra coisa o xml me devolve o seguinte resultado:
<weather ver="2.0">
<head></head>
<loc id="XXX000"></loc>
<cc></cc>
<dayf>
<lsup></lsup>
<day d="0" t="Saturday" dt="Aug 15">
<hi>30</hi>
<low>28</low>
</day>
<day d="1" t="Sunday" dt="Aug 16">
<hi>32</hi>
<low>26</low>
</day>
</dayf>
</weather>
como faço para ler o nó <day d="0" t="Sunday" dt="Aug 16"><hi>? tentei assim:
[php]
echo $obj->dayf->day[1]->hi;
[/php]
mas nao funcionou...
[]s
FM
Ok André.
Obrigado pelo help. Problemas resolvidos.
[]s
FM
Sei que já resolveu, mas não PRECISA ser com cURL. Uma modificação na função file_exists() também resolve.
Sobre manipular as informações, continue com a Lib SimpleXML. Ela tem funções para encontrar um nó específico.
>
Sei que já resolveu, mas não PRECISA ser com cURL. Uma modificação na função file_exists() também resolve.
Sobre manipular as informações, continue com a Lib SimpleXML. Ela tem funções para encontrar um nó específico.
file_exists() Checa a existência de um arquivo local, o que não é o caso.Além de curl, outra alternativa :
if(@file('http://url.com.br')) print 'no ar';
>
>
Sei que já resolveu, mas não PRECISA ser com cURL. Uma modificação na função file_exists() também resolve.
Sobre manipular as informações, continue com a Lib SimpleXML. Ela tem funções para encontrar um nó específico.
file_exists() Checa a existência de um arquivo local, o que não é o caso.Além de curl, outra alternativa :
if(@file('http://url.com.br')) print 'no ar';
Amigo, por favor, não confunda file_exists() nativo com essa modificação.
Ok. grato pela ajuda. vou testar dos dois jeitos.
[]s
FM
@Imaggens
Não vejo necessidade de usar aquilo tudo para simplismente verificar se o site esta online.
Eu considero aquela função util caso não se tenha cURL instalado no servidor. Se não eu acho uma gambiarra sem necessidade.
;)
>
>
>
Sei que já resolveu, mas não PRECISA ser com cURL. Uma modificação na função file_exists() também resolve.
Sobre manipular as informações, continue com a Lib SimpleXML. Ela tem funções para encontrar um nó específico.
file_exists() Checa a existência de um arquivo local, o que não é o caso.Além de curl, outra alternativa :
if(@file('http://url.com.br')) print 'no ar';
Amigo, por favor, não confunda file_exists() nativo com essa modificação.
Eu vi depois que era uma modificação, mas o edit do forum não funciona e não queria usar um double-post.[]'s
>
>
>
>
Sei que já resolveu, mas não PRECISA ser com cURL. Uma modificação na função file_exists() também resolve.
Sobre manipular as informações, continue com a Lib SimpleXML. Ela tem funções para encontrar um nó específico.
file_exists() Checa a existência de um arquivo local, o que não é o caso.Além de curl, outra alternativa :
if(@file('http://url.com.br')) print 'no ar';
Amigo, por favor, não confunda file_exists() nativo com essa modificação.
Eu vi depois que era uma modificação, mas o edit do forum não funciona e não queria usar um double-post.[]'s
Pois é.O bem dito EDIT de novo http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif
@André, foi bem besse sentido que postei a resposta, para o caso não ter a Lib cURL instalada o que é o caso de muitos servidores gratuitos que programadores usam como "teste" antes de entregar algo para um cliente.
pessoal vamos citar epenas o que foi postado por ultimo e de preferencia apenas o trecho que interessa
neste tópico vocês estão citando todos os posta anteriores sem a minima necessidade
nao sei se este topico ainda esta aberto, e como nao queria criar um novo la vai
estou tentanto acessar o xml do cptec.inpe si que qaundo upei meu script baseado em fopen, meu host ta "allow fopen off"
ai lendo na net vi sobre o curl .
a duvida e a seguinte ,com eu faço o curl "quebrar" o xml?
este e script que eu to usando, mas fica mairo bagunça, tudo numa linha so, se alguem puder me dar uma luz agradeço.
<?php
$ch = curl_init();
$timeout = 0;
curl_setopt($ch, curlOPT_HTTPHEADER, Array("Content-Type: text/xml"));
curl_setopt($ch, curlOPT_HTTPHEADER, Array("Accept: text/xml"));
curl_setopt($ch, CURLOPT_URL, 'http://servicos.cptec.inpe.br/XML/cidade/4679/previsao.xml');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$conteudo = curl_exec ($ch);
curl_close($ch);
echo $conteudo;
?>>
nao sei se este topico ainda esta aberto, e como nao queria criar um novo la vai
Agora está... :D
>
a duvida e a seguinte ,com eu faço o curl "quebrar" o xml?
A CURL não vai quebrar o XML para você, vai apenas comunicar com o servidor e recuperar para você o conteúdo; Para poder trabalhar com o XML que o servidor irá retornar você pode utilizar a SimpleXML:
$ch = curl_init();
curl_setopt( $ch , CURLOPT_HEADER , 0 );
curl_setopt( $ch , CURLOPT_RETURNTRANSFER , 1 );
curl_setopt( $ch , CURLOPT_URL, 'http://servicos.cptec.inpe.br/XML/cidade/4679/previsao.xml' );
$xml = null;
$conteudo = curl_exec( $ch ); //Aqui gravamos o XML que o servidor irá retornar na variável $conteudo
/**
* Antes de usar a SimpleXML, vemos se não ocorreu nenhum erro na comunicação com o servidor,
* para evitar que tentemos utilizar a SimpleXML em um conteúdo inválido.
*/
if ( !curl_errno( $ch ) ){
$xml = simplexml_load_string( $conteudo ); //Usamos load_string com o conteúdo que recuperamos do servidor
/**
* Agora é só mostrar os dados do XML
*/
printf( "Cidade: %s\n" , $xml->nome ); //Cidade: Santana do Livramento
printf( "UF: %s\n" , $xml->uf ); //UF: RS
} else
echo 'Não foi possível ler o XML';
curl_close( $ch );
Basta verificar com cURL.
{ echo 'Webservice fora do ar.'; }else{ //continua o script... }