Groups | Search | Server Info | Login | Register


Groups > dk.edb.internet.webdesign.serverside.php > #7125

Re: Brug af curl i php-script

From Bertel Lund Hansen <gadekryds@lundhansen.dk>
Newsgroups dk.edb.internet.webdesign.serverside.php
Subject Re: Brug af curl i php-script
Date 2018-09-15 14:49 +0200
Organization A noiseless patient Spider
Message-ID <1epsui7czlj44.dlg@lundhansen.dk> (permalink)
References (8 earlier) <20180915010410.daaa083dc583bc8bfffd231e@gmail.com> <jeej5pca00rc.dlg@lundhansen.dk> <B13nD.302439$QY7.121233@fx16.fr7> <1kzfu2q1xexqd.dlg@lundhansen.dk> <pk4nD.304431$QY7.80971@fx16.fr7>

Show all headers | View raw


Kim Ludvigsen skrev:

>> Hvor mange valutaer snakker vi om?
> 
> 13

Okay, her er koden. Jeg har lagt kommentarlinjer ind for at
opdele koden i logiske afsnit. Det gør jeg altid, og det er en
god vane. Jeg har slået linjeopdeling fra i mit mailprogram
så det leverer uendeligt lange linjer.

<?
// ---------------- Constants ----------------

$currencies = array('USD', 'GBP', 'EUR', 'JPY', 'INR', 'AUD', 'RUB', 'CNY', 'HKD', 'MYR', 'SGD', 'TWD', 'DKK');
$url_0 = "https://apigw1.bot.or.th/bot/public/Stat-ExchangeRate/DAILY_AVG_EXG_RATE_V1/?currency=";
$url_1 = "&start_period=$idag&end_period=$idag";
$idag = date(Y-m-d);

// ---------------- Main ----------------

$kurser = "";
foreach ($currencies as $currency) {
    $url = $url_0.$currency.$url_1;
    $curl = curl_init();
    curl_setopt_array($curl, array(
        CURLOPT_URL => "$url",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => array(
           "accept: application/json",
           "x-ibm-client-id: XXXXX"
        ),
    ));
    $response = curl_exec($curl);
    $err = curl_error($curl);
    curl_close($curl);

    $kurs = floatval(substr($response,strpos($response,'mid_rate')+11));
    $dato = substr($response,strpos($response,'last_updated')+15,10);
    $kurser .= "$kurs,$dato,";
}
$kurser = trim($kurser,",");
file_put_contents($filnavn,$kurser, LOCK_EX);
?>

Kommentarer:
Jeg har splittet urlen op i to dele - dog uden koden for valutaen.
Løkken gennemløber alle valutakoderne og giver dem 
variabelnavnet $currency. Jeg kan derfor bygge den nødvendige 
url ved at sammensætte de tre dele, og dertil bruger PHP 
punktum mellem elementerne:

(1)	$url = $url_0.$currency.$url_1;

Sidst i løkken samler jeg valuta-elementerne op i en streng.
Det gøres med

(2)	$kurser .= "$kurs,$dato,";

hvor jeg har variable indeni anførselstegn fordi de skal blandes
med almindelige tegn (her kommaer). Tegnet ".=" er en kortform 
som du skal vænne dig til. (2) kunne også skrives på denne måde:

(2a)	$kurser = $kurser."$kurs,$dato,";

Samme kortform kan bruges ved mange andre operatorer. Eksempler:

		x+=5; //(x=x+5)
		x*=8; // (x=x*8)
		osv.

Denne linje:

(3)	$kurser = trim($kurser,",");

er kosmetisk. Den fjerner det komma der ellers ville hænge 
til sidst i linjen $kurser. trim() alene fjerner 
for- og efterhængt whitespace.


Note:
Dine anførselstegn om $filename er uskadelige, men overflødige. 
Et 'råt' variabelnavn virker (oversættes) altid alene. Kun hvis 
det skal blandes med almindelige tegn bruger man anførselstegn. 
Eksempel:

		"Info gemmes i filen: $filename"

-- 
/Bertel

Back to dk.edb.internet.webdesign.serverside.php | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 16:13 +0200
  Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-13 18:43 +0200
    Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 20:25 +0200
    Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-13 21:03 +0200
      Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 22:20 +0200
        Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-13 22:56 +0200
  Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 22:38 +0200
    Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 22:43 +0200
      Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-13 23:22 +0200
        Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-13 23:30 +0200
        Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-14 13:54 +0200
          Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-14 13:55 +0200
            Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-14 14:40 +0200
            Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-14 16:19 +0200
              Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-14 18:33 +0200
              Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-14 21:53 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-15 01:04 +0200
                Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-15 09:55 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-15 10:01 +0200
                Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-15 10:08 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-15 11:29 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-15 13:34 +0200
                Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-15 14:49 +0200
                Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-15 15:00 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-15 15:33 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-16 11:47 +0200
                Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-16 17:38 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-16 18:18 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-16 21:08 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-16 22:09 +0200
                Re: Brug af curl i php-script Bertel Lund Hansen <gadekryds@lundhansen.dk> - 2018-09-17 09:42 +0200
                Re: Brug af curl i php-script Kim Ludvigsen <kim@kimsside.dk> - 2018-09-17 13:22 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-15 14:39 +0200
                Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-15 23:54 +0200
                Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-16 00:08 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-16 15:07 +0200
                Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-16 18:11 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-16 20:40 +0200
                Re: Brug af curl i php-script Martin Larsen <martin+spamfree+larsen@bigfoot.com> - 2018-09-17 09:40 +0200
                Re: Brug af curl i php-script Jan Hansen <jhjjhjhhansen@gmail.com> - 2018-09-17 10:54 +0200

csiph-web