Webservice de um site

Boas…
Onde posso obter boa leitura sobre a técnica de webservice, para capturar dados de um sie evidentemente para usar no SC.
Pretendo obter dados deste site, (https://www.windguru.cz/48952) nomeadamente a data e hora, Velocidade (nós)
Rajadas (nós)
Direcção do vento
Ondulação (m)
Periodo da vaga (s)
Direcção da vaga
*Temperatura (°C)

Acho que ai é mais programação mesmo sem influencia do SC

se eles não fornecerem webservice para retorno dos dados voce tera que usar file_get_contents ou Curl

$EnderecoUrl = ‘https://www.windguru.cz/48952’;
$PegaDadosSite = file_get_contents($EnderecoUrl );
ou
CURLOPT_URL e DOMXPath

independente tem trabalhar com o retorno que vai estar em $PegaDadosSite, e torcer para eles não mudar nome, id, etc

O ideal é se eles tivessem o webservice para pegar os retornos em array

testei esse código mas:
ERRO
file_get_contents(): Unable to find the wrapper “https” - did you forget to enable it when you configured PHP?

ERRO
file_get_contents(https://www.windguru.cz/48952): failed to open stream: Invalid argument

Terá que verificar primeiramente se eles disponibilizam webservice…

Se gostou da resposta, clique no ícone “coração” abaixo

1 Curtida

pode ser que seu servidor esteja bloqueada a função, use o Curl, não tem erro, segue um exemplo para pegar o titulo, use a mesma logica para o que precisa

$site = "https://www.windguru.cz/48952";
 
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $site);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
ob_start();
curl_exec($ch); 
curl_close($ch);
$Conteudo = ob_get_contents();
ob_end_clean();
       
preg_match('/<title>([^<]++)/', $Conteudo, $Encontrado);

echo $Encontrado[1]; 
2 Curtidas

Saída do conteúdo do array dá erro:
|ERRO|
|Undefined offset: 1|

testei aqui e veio o titulo, montei em uma blank…

faz um teste, abre uma blank, e dentro dela coloque o abaixo, execute e veja se aparece o site dentro dela, se sim esta trazendo todo o conteúdo,

$site = "https://www.windguru.cz/48952";
 
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $site);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
ob_start();
curl_exec($ch); 
curl_close($ch);
$Conteudo = ob_get_contents();
ob_end_clean();
       
 print_r($Conteudo);
2 Curtidas

Não escreve o resultado,

Veja as configurações de seu php, as duas formas que passei funcionou no php5.4 e php7

1 Curtida

<estou usando um ficheiro blank do SC 9.3

eu também, 9.03.09

crie as duas formas e tente enviar para um servidor, veja se funciona, pode ter alguma restrição local, tente uma terceira também com o file_get_contents , mas em um servidor web.

aqui funcionou local no e no servidor

Boas… no servidor web funcionar as 2 situações.
Agora como posso “capturar” os valores apresentados por exemplo da linha >Velocidade (nós) ??

Ai voce tem que ver o código fonte da pagina e saber as posições que precisa e ir pegando os dados e colocando em variáveis para exibir onde precisa.

da uma olhada na função preg_match do php

1 Curtida