2016-07-04 4 views
0

Ich habe ein PHP-Skript gefunden, um die Downloads meiner Websites zu zählen. Es speichert Downloads zählt in einer TXT-Datei als Integer-Typ. Wie die count.txt nur "109" enthält, wurde die Datei 109 mal heruntergeladen. Ich möchte die Anzahl der Downloads mit nativem Javascript anzeigen. Nicht PHP. Ich möchte nur die Integer-Daten aus der TXT-Datei als Variable erhalten. Ist es möglich? wenn möglich, wie?Wie bekomme ich Integer Daten aus einer Textdatei als Javascript Variable?

PHP Script ist:

<html> 
<head> 
<meta http-equiv="refresh" content="0;url=1.jpeg"> 
</head> 
<body> 

<?php 

$fp = fopen("Count.txt", "r"); 
$count = fread($fp, 1024); 
fclose($fp); 
$count = $count + 1; 
$fp = fopen("Count.txt", "w"); 
fwrite($fp, $count); 
fclose($fp); 

?> 

</body> 
</html> 
+0

Ich glaube nicht, dass Sie das tun können. Aus Sicherheitsgründen darf JavaScript keine Daten von Dateien lesen, die auf dem System gespeichert sind. Warum nicht versuchen, das Skript so zu modifizieren, dass localStorage zum Speichern von Zählern verwendet wird, die Sie sehr leicht später lesen können. – onetwo12

+0

onetwo12 ist korrekt. Sie können nicht tun, dass PHP eine Server-seitige Sprache ist und dass JavaScript eine Client-seitige Sprache ist. Wenn Sie die Anzahl der Downloads anzeigen möchten, müssen Sie entweder ein PHP-Skript suchen oder schreiben, das eine Datenbanktabelle inkrementiert, oder ein PHP-Skript schreiben, das die Datei liest und das Ergebnis ausgibt. Sie haben bereits das meiste von dem, was Sie brauchen, um es zu schreiben. – DottedT

+1

Sie könnten eine XHR-Anfrage machen, um die .txt-Datei zu erhalten, wenn auf die URL zugegriffen werden kann, andernfalls ist es das, was @ onetwo12 gesagt hat. – GGG

Antwort

0

Ich habe verwendet, um dieses JS für XmlHttpRequest die Variable aus zu bekommen count.txt

<h1>Downloaded <span id="displaydlcount"></span> Times! 

<script type="text/javascript"> 
    function lol(){ 
     var read = new XMLHttpRequest(); 
     read.open('GET', 'Count.txt', false); 
     read.send(); 
     var displayName = parseInt(read.responseText) 
     document.getElementById("displaydlcount").innerHTML = displayName; 
     setTimeout("lol()",1000) 
     } 
     window.onload = lol(); 
</script> 
0

Sie diese mit AJAX erreichen können. Unter der Annahme, die txt-Datei im selben Verzeichnis wie die Datei, die das Skript ausgeführt wird, sollen Sie in der Lage sein, diesen Code zu verwenden:

$(document).ready(function(){ 
     $.ajax({ 
      url: "Count.txt", 
      success: function (dataString){ 
       console.log(dataString); 
      } 
     }); 
}) 

Hinweis: Dies scheint nicht auf localhost zu arbeiten, aber ich es getestet auf meinem Server und es hat funktioniert.

+0

Danke, ich habe XMLhttpRequest verwendet, um die ganzzahligen Daten zu erhalten. –

+0

Ich bin froh, dass es funktioniert hat. Unter der Haube ist es das Gleiche, nur dass Jquery's Version von Ajax eine "freundlichere" Syntax hat. –

Verwandte Themen