2017-02-27 2 views
0

Ich habe mehrere Möglichkeiten zum Zählen der Klicks auf eine Datei Download Link zu sehen. Die Option, die bisher möglich war, ist die Verwendung einer JSON-Datei, um die Daten zu speichern; Allerdings habe ich das Problem, die Daten einzeln extrahieren zu können, da ich die Daten gemäß der aktuellen Seite anzeigen muss, die eine eindeutige ID hat.Erhalten Sie separate Daten von JSON-Datei mit PHP

Dies ist das erste Mal, dass ich mit JSON-Dateien arbeite, und es war bisher kompliziert, ich hoffe, ich kann helfen.

HTML Daten:

<a class="MxDownload" data-nameplugin="File-<?php the_ID(); ?>" href="<?php echo $file_down; ?>" title="<?php echo __('Download the ', 'cyberdocentes'); ?><?php the_title(); ?>" download><?php echo __('Download the ', 'cyberdocentes'); ?><?php the_title(); ?></a> 

JSON-Datendatei (eine externe Datei):

{"File-262":{"countDownloads":4},"File-260":{"countDownloads":2}} 

Das ist mein PHP-Code:

<?php 
global $down_id; 
    $data = file_get_contents (''. get_stylesheet_directory_uri() .'/scripts/dataDownloads.json'); 
     $json = json_decode($data, true); 
     $down_id = 'File-'. get_the_ID() .''; //This is unique ID for the URL 

     foreach ($json as $key => $value) { 
      if (!is_array($value)) { 
       echo '<pre>' . $val . '</pre>'; 
      } else { 
       foreach ($value as $key => $val) { 
        $count_down = $json[$down_id]['countDownloads'][0][$val]; 
        echo "Descargas: ". $val ."<br />"; 
       } 
      } 
     } 

?> 

die Druckdaten:

Descargas: 4 
Descargas: 2 

ich auf die ID der aktuellen Verbindung nur Daten mit Bezug zu wollen. Danke

Antwort

0

in foreach-Schleife sollten Sie tun, wie

foreach($json as $key=>$value) 
{ 
    // check whether your $key is similar to your fileid 
    if($key==$down_id) 
    { 
     if(is_array($value)) 
     { 
      // now your $val holds the download numbers 
      foreach ($value as $key => $val) { 
        echo "Descargas: ". $val ."<br />"; 
       } 
     } 
    } 
    } 
+0

lassen Sie mich wissen, ob es für Sie arbeitet oder nicht ... wenn gearbeitet akzeptieren Sie bitte die richtige Antwort –

+0

Vielen Dank, gelöst. – Fliberty