Javascript - sterowanie za pomocą linków bezpośrednich

local
Posts: 545
Joined: Mon Jan 27, 2020 11:33 am

Post

Po co CROSy omijać ? Równie dobrze można wywołać w php przez curl/fsockopen/file_get_contents itp.
ktoś wjedzie na stronę otworzy kod źródłowy i już linki do wymiany.... JS to nie zbyt dobry wybór.
4xShelly 1, Shelly 1L, 2xShelly 2.5, Sonoff T3, 2xSonoff Basic R2, 4xNeo 16A
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

local wrote: Wed Feb 19, 2020 8:29 pm Po co CROSy omijać ? Równie dobrze można wywołać w php przez curl/fsockopen/file_get_contents itp.
ktoś wjedzie na stronę otworzy kod źródłowy i już linki do wymiany.... JS to nie zbyt dobry wybór.
Czy można to jeszcze poprawić?

Code: Select all

$bme_url='https://host/direct/10/xxxxx/read';
$bme_ch = curl_init($bme_url);
curl_setopt($bme_ch, CURLOPT_TIMEOUT, 5);
curl_setopt($bme_ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($bme_ch, CURLOPT_RETURNTRANSFER, true);
$bme_data = curl_exec($bme_ch);
curl_close($bme_ch); 

$bme_output = json_decode($bme_data);
$temp = number_format($bme_output->temperature, 2, ',', '');
$humi = number_format($bme_output->humidity, 2, ',', '');
$is_online = $bme_output->connected;
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
User avatar
fracz
Posts: 2342
Joined: Fri Oct 28, 2016 10:56 pm
Location: Kraków
Has thanked: 4 times
Been thanked: 6 times

Post

local wrote: Wed Feb 19, 2020 8:29 pm Po co CROSy omijać ? Równie dobrze można wywołać w php przez curl/fsockopen/file_get_contents itp.
ktoś wjedzie na stronę otworzy kod źródłowy i już linki do wymiany.... JS to nie zbyt dobry wybór.
Temat ma w nazwie "Javascript", więc pokazuję jak można to zrobić. Można to wykorzystać na różne ciekawe sposoby. Wywołanie z serwera jest proste i było demonstrowane wielokrotnie.
lukfud wrote: Wed Feb 19, 2020 8:38 pm Czy można to jeszcze poprawić?
Można prościej, np:

Code: Select all

$bme_output = json_decode(file_get_contents(bme_url));
Ale to nie jest temat o PHP. Bałagan robicie :(
User avatar
lukfud
Posts: 2480
Joined: Thu Nov 23, 2017 11:33 pm
Location: Warszawa
Has thanked: 13 times
Been thanked: 11 times

Post

fracz wrote: Wed Feb 19, 2020 8:45 pm Można prościej, np:

Code: Select all

$bme_output = json_decode(file_get_contents(bme_url));
Ale to nie jest temat o PHP. Bałagan robicie :(
Dziękuję i przepraszam.
https://www.facebook.com/groups/supladiy
https://www.facebook.com/groups/suplazamel
https://www.facebook.com/groups/suplaauraton
https://smartnerzeczy.pl
local
Posts: 545
Joined: Mon Jan 27, 2020 11:33 am

Post

Code: Select all

$bme_url = "svrX.supla.org/direct/...";
$arrayResult = json_decode(file_get_contents($bme_url, false, stream_context_create(["http" => ["method" => "GET", "header" => "Accept: application/json\r\n"]])),1);
print_r($arrayResult['temperature']);
4xShelly 1, Shelly 1L, 2xShelly 2.5, Sonoff T3, 2xSonoff Basic R2, 4xNeo 16A
Holadola0
Posts: 2
Joined: Tue May 16, 2023 2:19 am

Post

local wrote: Wed Feb 19, 2020 9:18 pm

Code: Select all

$bme_url = "svrX.supla.org/direct/...";
$arrayResult = json_decode(file_get_contents($bme_url, false, stream_context_create(["http" => ["method" => "GET", "header" => "Accept: application/json\r\n"]])),1);
print_r($arrayResult['temperature']);
W JavaScript można kontrolować linki bezpośrednie za pomocą różnych metod i właściwości dostępnych dla obiektu window.location. Na stronie goit.global znalazłem kilka metod: var currentUrl = window.location.href; lub var url = new URL(window.location.href);
url.searchParams.set(""paramName"", ""paramValue"");
window.location.href = url.href;
Last edited by Holadola0 on Fri May 19, 2023 2:47 pm, edited 2 times in total.
User avatar
klimasstudio
Posts: 1273
Joined: Wed Aug 28, 2019 9:35 pm
Location: localhost

Post

Oto przykład w PHP który używam do stacji pogodowej:

Najpierw pobierasz dane JSONem do zmiennych

Code: Select all

$jsonpm1 = file_get_contents('https://svr11.supla.org/direct/1XXX/XXXXXXXX/read?format=json');
$datapm1 = json_decode($jsonpm1);
$pm1 = $datapm1->temperature;
Dane które są pod linkiem w formacie JSON:

Code: Select all

// 20230516075622
// https://svr11.supla.org/direct/direct/1XXX/XXXXXXXX/read?format=json

{
  "connected": true,
  "temperature": 11
}
A tutaj wyświetlanie danych

Code: Select all

PM 1.0: <b><?php echo $pm1; ?>µg/m³</b> Norma WHO: Nie zdefiniowana<br>
Więc chodź OSUPLUJE Ci dom :mrgreen:

Druk 3D - > https://klimastech.eu.org/druk-3d

Return to “Pomoc”