Cijfer uit .txt op web pakken?

Overzicht

Sponsored by: Vacatures door Monsterboard

Peter vB

Peter vB

31/10/2021 15:49:48
Anchor link
Hallo, ik ben op zoek naar een scriptje om uit deze txt pagina:
http://www-app3.gfz-potsdam.de/kp_index/Kp_ap_nowcast.txt
de laatst gemeten Kp index te halen (het omcirkelde cijfer in de screenshot: https://iili.io/57cNG2.jpg)
Als er een - in een regel staat, dan betekent dat dat die meting nog gedaan moet worden en die regel(s) moet je dan negeren.

Iemand enig idee hoe dat aan te pakken?
Ik kan een beetje rommelen met bestaande PHP scripts, maar verder ben ik een totale php-noob.
Stel jullie hulp zeer op prijs!
 
PHP hulp

PHP hulp

29/03/2024 15:51:57
 
- Ariën  -
Beheerder

- Ariën -

31/10/2021 16:23:06
Anchor link
Gaat het niet om de laatste regel?
 
Peter vB

Peter vB

31/10/2021 17:25:49
Anchor link
Nee, naast de Kp meting van die dag worden ook al de regels van de a.s. metingen van die dag getoond t/m 21u GMT, maar die krijgen dus een negatieve Kp.
Die regels moeten genegeerd worden en het lastige is dat er bijv. na de meting van 21 uur GMT geen loze regels meer getoond worden.
Erg lastig denk ik?
 
Rob Doemaarwat

Rob Doemaarwat

31/10/2021 17:34:12
Anchor link
Heel kort door de bocht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

$url
= 'http://www-app3.gfz-potsdam.de/kp_index/Kp_ap_nowcast.txt';
$value = null;

foreach(explode("\n",trim(file_get_contents($url))) as $line)
  if(($v = floatval(substr($line,46,6))) >= 0) $value = $v;

var_dump($value);

?>


Wat gebeurt hier:
- bestand ophalen (file_get_contents())
- bestand splitsen in regels ($line)
- per regel de waarde bepalen ($v)
- indien waarde positief, dan bewaren ($value = evt. reeds bepaalde waarde overschrijven)
- het eindresultaat is de laatste, positieve waarde in het bestand
Gewijzigd op 31/10/2021 17:35:02 door Rob Doemaarwat
 
Peter vB

Peter vB

31/10/2021 18:22:31
Anchor link
Oh wow, dankjewel Rob.
Ik heb het scriptje even online geprobeerd en ik krijg dit als resultaat:
float(2.333)

Dat is inderdaad de actuele Kp, maar ik zou graag alleen de waarde willen zien.
Dus het eerste cijfer (en in een apart scriptje eventueel ook nog die hele waarde?).
Of ben ik nu heel erg hebberig :)

Ik draai overigens nog op PHP 7.4 maakt dat nog wat uit?
 
- Ariën  -
Beheerder

- Ariën -

31/10/2021 18:40:20
Anchor link
De $value echo'en.
 
Peter vB

Peter vB

31/10/2021 18:48:30
Anchor link
Dat werkt inderdaad Ariën!
Dan krijg ik 2.333 te zien.
Nu nog het eerste cijfer alleen en ik ben helemaal gelukkig!

Toevoeging op 31/10/2021 19:33:27:

Even gegoogled en vond dit:

$firstChar = mb_substr($value, 0, 1);
echo $firstChar;

en dat werkt inderdaad.
Ik ben er uit.
Enorm bedankt voor jullie hulp Ariën en Rob !!
Gewijzigd op 31/10/2021 18:49:20 door Peter vB
 
Rob Doemaarwat

Rob Doemaarwat

31/10/2021 20:55:17
Anchor link
Als het getal ook wel eens groter dan 10 kan worden (en "het eerste karakter" dus niet correct is), dan kun je beter floor($value) gebruiken. Daarmee "rond je naar beneden af" (sowieso wel "netter").
 
Francisco Gusikowski

Francisco Gusikowski

10/11/2021 12:11:19
Anchor link
**snip*"

Edit:
Domme reactie van een domme spammer verwijderd. Plus enkeltje eeuwige banvelden.
Gewijzigd op 10/11/2021 12:41:47 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

30/11/2021 09:27:02
Anchor link
.
 
 

Dit topic is gesloten.



Overzicht

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.