Ankündigung

Einklappen
Keine Ankündigung bisher.

Externe Datei alle 10 Minuten auf eigenen Server laden

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Externe Datei alle 10 Minuten auf eigenen Server laden

    Hallo,
    ich möchte ganz gerne alle 10 Minuten den Inhalt einer externen Datei auf meinen Server (Hosting Paket) laden.

    Es geht um diese Datei: https://api.coinmarketcap.com/v1/tic...t=EUR&limit=10

    Grund: Coinmarketscap erlaubt maximal 10 API-Requests pro Minute.

    Wie bewerkstellige ich das? Mit welcher PHP-Funktion ist das möglich?

    Vielen Dank

  • #2
    Mit eigentlich gar keiner. Das steuerst du von aussen in dem du Script, welches die Daten herunterlädt, alle !0 Minuten ein mal ausführen lässt.
    Bei Unix Apache geht das mit cron und einem cronjob, sollte eigentlich jeder Hoster zur Verfügung stellen.

    Anleitung für Plesk.

    Kommentar


    • #3
      Vielen Dank für deine Antwort Cronjob habe ich. Ich kann also ein Script anstoßen, welches die Datei herunterlädt. Jetzt benötige ich nur noch ein Script. Ein Tipp, wie solch ein Script aussehen könnte? Gibt es eine PHP-Funktion, die externe Dateien herunterlädt?

      Kommentar


      • #4
        Habe es (glaube ich) hinbekommen, per @fopen. Der Cronjob Tipp war Gold wert !

        PHP-Code:
        <? 
          $extern_url = "https://api.coinmarketcap.com/v1/ticker/?convert=EUR&limit=10"; 
          $local_file = "export.txt"; 
            $fpread = @fopen($extern_url, 'r');  
          if(!$fpread) 
          {  
                echo "Zur Zeit nicht erreichbar<br>n";  
                #exit;  
          } else {  
                $fpwrite = @fopen($local_file, 'w');  
                if(!$fpwrite) 
                {  
                    echo "$errstr ($errno)<br>n";  
                    exit;  
                } else {  
                    while(! feof($fpread) ) 
                    {  
                        $buffer = @ltrim(Chop(fgets($fpread, 256)))."n";  
                fputs($fpwrite, $buffer);  
              } 
                 @fclose($fpread);  
              }  
              @fclose($fpwrite);  
          }  

        ?>

        Kommentar


        • #5
          Lerne PHP und wenn du willst das dir das jemand schreibt dann stelle es in die Scriptbörse. So einfache Dinge findest du zudem mit Google, dafür ist das Forum nicht gedacht. eine Quellensammlung wo du Infos herholen kannst findest du auch in der Wissenssammlung.

          Kommentar


          • #6
            PHP-Code:
            $url 'https://api.coinmarketcap.com/v1/ticker/?convert=EUR&limit=10';
            $newfile 'export.txt';

            if (!
            copy($url$newfile)) {
                echo 
            "failed to copy $url...\n";
            }else
                echo 
            "done"

            Kommentar


            • #7
              Vielen Dank

              protestix : ich habe es ja hinbekommen siehe

              bislang habe ich die APi-Daten direkt von coinmarketscap bezogen. Folgendermaßen:

              PHP-Code:
                  <?php

              $ch 
              curl_init();
              curl_setopt($ch,CURLOPT_URL,'https://api.coinmarketcap.com/v1/ticker/bitcoin/?convert=EUR');
              curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
              curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
              curl_setopt($ch,CURLOPT_TIMEOUT,10);
              curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);

              $result curl_exec($ch);
              curl_close($ch);
              $data json_decode($result,true);

              $name $data[0]['name'];
              $symbol $data[0]['symbol'];
              $rank number_format($data[0]['rank']);
              $priceBTC number_format($data[0]['price_btc'], 8);
              $price_eur number_format($data[0]['price_eur'], 4);
              $dayVolume number_format($data[0]['24h_volume_usd'], 2);
              $marketCap number_format($data[0]['market_cap_usd'], 2);
              $totalSupply number_format($data[0]['total_supply'], 2);
              $percentChange1Hr number_format($data[0]['percent_change_1h'], 2);
              $percentChange24Hr number_format($data[0]['percent_change_24h'], 2);
              $percentChange7Days number_format($data[0]['percent_change_7d'], 2);
              $lastUpdated $data[0]['last_updated'];


              ?>
              Nun habe ich die Daten (https://api.coinmarketcap.com/v1/tic...n/?convert=EUR) lokal auf meinem Server, in der Datei export.txt

              Wenn ich nur dir URL ändere, werden keine Daten ausgegeben:
              PHP-Code:
              curl_setopt($ch,CURLOPT_URL,'https://meine-url.de/export.txt'); 
              Funktioniert curl_setopt lokal nicht?
              Besten dank!

              Kommentar


              • #8
                Wenn die Daten lokal liegen, wozu überhaupt ein HTTP-Request mit cURL?

                Das wäre so als würdest du mit dem Auto einmal um den Block fahren, wenn du eigentlich nur ins Zimmer nebenan willst.

                Kommentar


                • #9
                  h
                  Zitat von hellbringer Beitrag anzeigen
                  Wenn die Daten lokal liegen, wozu überhaupt ein HTTP-Request mit cURL?

                  Das wäre so als würdest du mit dem Auto einmal um den Block fahren, wenn du eigentlich nur ins Zimmer nebenan willst.
                  Das nennt sich Raucherfahrt.

                  Kommentar


                  • #10
                    Warum möchtest du alle 10 Minuten per Cron die API bemühen, wenn du gar nicht weist, ob das notwendig ist.
                    Speicher deine Antwort von der API in eine lokale Datei, die du als Cache benutzt. Wenn von deiner Applikation die API-Daten benötigt werden, prüfst du zuerst, wie alt deine Cache-Datei ist. Nur wenn diese älter als z.B. 10 Minuten ist dann holst du sie neu. So wird die die Last für den API-Server minimal. Die Betreiber und Nutzer der API werden dir dankbar sein.


                    Kommentar


                    • #11
                      Ich bin halt absoluter Neuling.

                      Per fopen kriege ich es auch nicht hin.

                      PHP-Code:
                      <?php

                      $file 
                      =  = 'export.txt';

                      if ( 
                      $fh fopen$file'r') )
                      {

                      $name $data[0]['name'];
                      $symbol $data[0]['symbol'];
                      $rank number_format($data[0]['rank']);
                      $priceBTC number_format($data[0]['price_btc'], 8);
                      $price_eur number_format($data[0]['price_eur'], 4);
                      $dayVolume number_format($data[0]['24h_volume_usd'], 2);
                      $marketCap number_format($data[0]['market_cap_usd'], 2);
                      $totalSupply number_format($data[0]['total_supply'], 2);
                      $percentChange1Hr number_format($data[0]['percent_change_1h'], 2);
                      $percentChange24Hr number_format($data[0]['percent_change_24h'], 2);
                      $percentChange7Days number_format($data[0]['percent_change_7d'], 2);
                      $lastUpdated $data[0]['last_updated'];

                      echo 
                      $price_eur;

                      }
                          
                      fclose($fh);

                      ?>

                      Kommentar


                      • #12
                        PHP-Code:
                        $data json_decode(file_get_contents('/pfad/zur/export.txt'), true); 

                        Kommentar


                        • #13
                          Ich kriege es leider nicht hin.

                          Bevor ich einen weiteren Thread erstelle, poste ich hier mein Jobegesuche. Bitte in das entsprechende Unterforum verschieben

                          Die folgende Datei lasse ich alle 15 Minuten per PHP und Cronjob auf meinem Webspace speichern:

                          https://api.coinmarketcap.com/v1/ticker/

                          Die Datei wird auf meinem Server in der Datei "Name.txt" gespeichert.

                          Aufgabe: Ich möchte den Bitcoin-Kurs, Ethereum-Kurs etc. aus dieser TXT-Datei auslesen und auf einer anderen Seite per ECHO ausgeben.

                          Gibt es hier jemanden der sowas gegen Bezahlung machen würde? Bitte per PN melden

                          Kommentar


                          • #14
                            Die Datei wird auf meinem Server in der Datei "Name.txt" gespeichert.
                            Warum wählst du einen so aussagelosen Namen für deine Datei und den solltest du immer klein schreiben, damit du keine Schreibfehler einbaust.
                            Ich habe mal als Dateinamen bitcoinpreis.txt gewählt und lasse da aus dem ersten Array, das ist der mit "name": "Bitcoin", den Preis in Euro anzeigen.
                            PHP-Code:
                             $data json_decode(file_get_contents('bitcoinpreis.txt'), true);  

                            //var_dump($data);    zum ansehen des Arrays die beiden Schraegstriche entfernen

                            echo '1 Bitcoin kostet ' .
                                   
                            number_format($data[0]['price_eur'], 2',''.') .
                                   
                            "&nbsp;€"
                            Das geht jetzt nur wenn die Datei bitcoinpreis.txt im gleichen Verzeichnis wie das Script liegt. Ansonsten muss du den Pfad mit hinzufügen, das ist ganz wichtig.

                            Kommentar


                            • #15
                              Zitat von AndreasFa Beitrag anzeigen
                              Ich kriege es leider nicht hin.

                              Bevor ich einen weiteren Thread erstelle, poste ich hier mein Jobegesuche. Bitte in das entsprechende Unterforum verschieben
                              Und weil Du zu faul bist, soll die Moderation für Dich arbeiten, oder wie?!

                              [MOD: geschlossen]

                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X