• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bekomme nur hieroglyphen

Bevorzugen tue ich natürlich auch einfachere Wege.Seid dem ich mich mit Jquery auseinander gesetzt habe ,nutze ich das fast nur noch.Aber wie gesagt ,man brauch ab und zu auch den alten weg.
Deswegen will ich bei php auch beide wege verstehen und lernen.Nicht nur damit ,das man anderen helfen kann,sondern auch für mich selber.Ich kenne die Materie von Php noch nicht,aber bei JS wahr ich auch Froh das man beides kann.
Aber eins ist bei beiden gleich ,man lernt nie aus.
Wie du sagst kanntest du das mit der INI auch noch nicht so.
Man kann schon Jahre lang sich mit einer Sprache beschäftigen und man lernt immer noch was dazu.
 
Werbung:
Vielleicht jetzt ein 'gutes' Beispiel für einfach mal drauf los programmieren. Habe mal die Idee mit der .csv Datei weiterentwickelt und noch die Funktionalitäten 'Klicks heute', 'Klicks gestern', 'Klicks diese Woche', 'Klicks letzte Woche' hinzugefügt.
Alle Datenzellen aktualisieren sich bei Bedarf (neuer Tag.. neue Woche) automatisch.
PHP:
<?php
$speicherort = $_SERVER['DOCUMENT_ROOT']."/zaehler.csv"; //Speicherort der .csv Datei
$daten = array();  //Initialisieren Array
$heute =  time()/(24*60*60); /*ergibt einen Wert, der dem heutigen Tag enstpricht */
$woche =  time()/(7*24*60*60); /*ergibt einen Wert, der der aktuellen Woche enstpricht */
$filename = basename($_SERVER['PHP_SELF']);  // der Dateiname ohne Pfad der aufrufenden Datei
      if (file_exists($speicherort))
        {
         $daten = file($speicherort, FILE_IGNORE_NEW_LINES);  // liest die Daten zeilenweise in das Array $daten
         $count1 = 0;
         $check = 0;
         while(isset($daten[$count1]))   // wiederhole so lange, wie Daten in $daten[$count1] vorhanden sind
            {
             $daten[$count1] = explode(";", $daten[$count1]);  // trenne String an ";"
             if(($heute - $daten[$count1][2]) >= 1)  //aktualisieren der Tageszähler, wenn neuer Tag
               {if(($heute - $daten[$count1][2]) < 2) // weniger als 2 Tag seit letzte Aktualisierung
                  {
                   $daten[$count1][2] = $heute;
                   $daten[$count1][4] = $daten[$count1][3];
                   $daten[$count1][3] = 0;
                  }
                else  // mehr als 1 Tag seit letzter Aktualisierung
                  {
                   $daten[$count1][2] = $heute;
                   $daten[$count1][4] = 0;
                   $daten[$count1][3] = 0;
                  }
               }
             if(($woche - $daten[$count1][5]) >= 1)
               {if(($woche - $daten[$count1][5]) < 2) // weniger als 2 Wochen seit letzte Aktualisierung
                  {
                   $daten[$count1][5] = $woche;
                   $daten[$count1][7] = $daten[$count1][6];
                   $daten[$count1][6] = 0;
                  }
                else  // mehr als 1 Woche seit letzter Aktualisierung
                  {
                   $daten[$count1][5] = $woche;
                   $daten[$count1][7] = 0;
                   $daten[$count1][6] = 0;
                  }
               }
             if($daten[$count1][0] == $filename)    // Abfrage ob Dateiname schon vorhanden ist
                {
                 $daten[$count1][1]++;             // wenn ja - erhöhe den Gesamtzähler
                 $daten[$count1][3]++;             // wenn ja - erhöhe den heute Zähler
                 $daten[$count1][6]++;             // wenn ja - erhöhe den Wochenzähler
                 $check = 1;
                }
             $count1++;
            }
         if($check == 0)    // Dateiname noch nicht vorhanden - erzeugt neuen Eintrag am Ende des Arrays
           {
            $daten[$count1][0] = $filename;    // anhängen der neuen Daten ans Ende des Arrays
            $daten[$count1][1] = 1;            // setzt Anfangswert der Zählung gesamt
            $daten[$count1][2] = $heute;       // setzt Anfangswert Tag
            $daten[$count1][3] = 1;            // setzt Anfangswert der Zählung Tagesklick
            $daten[$count1][4] = 0;            // setzt Anfangswert der Zählung gestern
            $daten[$count1][5] = $woche;       // setzt Anfangswert Woche
            $daten[$count1][6] = 1;            // setzt Anfangswert der Zählung aktuelle Woche
            $daten[$count1][7] = 0;            // setzt Anfangswert der Zählung letzte Woche
           }
        }
      else       // Speicherdatei noch nicht vorhanden - erzeugt ersten Datensatz
        {
            $daten[0][0] = $filename;    // erzeuge ersten Datensatz, wenn zaehler.csv noch nicht existiert
            $daten[0][1] = 1;            // setzt Anfangswert der Zählung gesamt
            $daten[0][2] = $heute;       // setzt Anfangswert Tag
            $daten[0][3] = 1;            // setzt Anfangswert der Zählung Tagesklick
            $daten[0][4] = 0;            // setzt Anfangswert der Zählung gestern
            $daten[0][5] = $woche;       // setzt Anfangswert Woche
            $daten[0][6] = 1;            // setzt Anfangswert der Zählung aktuelle Woche
            $daten[0][7] = 0;            // setzt Anfangswert der Zählung letzte Woche
        }
     $count2 = 0;
     $dateizeiger = fopen($speicherort, "w");        // speicher Array in Datei
     while(isset($daten[$count2][0]))
        {
         fwrite($dateizeiger, $daten[$count2][0].";".$daten[$count2][1].";".$daten[$count2][2].";".$daten[$count2][3].";".$daten[$count2][4].";".$daten[$count2][5].";".$daten[$count2][6].";".$daten[$count2][7]."\n");
         $count2++;
        }
     fclose($dateizeiger);
?>
(Liebe Kinder.. bitte nicht nachmachen... es gibt sicherlich bessere Wege. Aber hier geht es um den Vergleich Methode A vs Methode B.)
.. und weil ich gerade etwas Zeit hatte, hier auch noch die Tabelle mit der Auswertung der Daten.
PHP:
<?php
$speicherort = $_SERVER['DOCUMENT_ROOT']."/zaehler.csv"; //Speicherort der .csv Datei
$daten = array();  //Initialisieren Array
      if (file_exists($speicherort))
        {
         $daten = file($speicherort, FILE_IGNORE_NEW_LINES);  // liest die Daten zeilenweise in das Array $daten
         $count1 = 0;
         while(isset($daten[$count1]))   // wiederhole so lange, wie Daten in $daten[$count1] vorhanden sind
            {
             $daten[$count1] = explode(";", $daten[$count1]);  // trenne String an ";"
             $count1++;
            }
        }
?>
<!DOCTYPE HTML>
<html lang="de">
<head>
<title>Auswertung Seitenclicks</title>
<meta charset="utf-8">
<meta name=viewport content="width=device-width, initial-scale=1">
<style>
table {
  margin: 0px auto;
}
td {
 padding: 5px 15px;
 text-align: center;
}
</style>
</head>
<body>
  <table>
    <tr>
      <td>Datei</td><td>Aufrufe gesamt</td><td>Aufrufe heute</td><td>Aufrufe gestern</td><td>Aufrufe aktuelle Woche</td><td>Aufrufe letzte Woche</td>
    </tr>
<?php
  $count1 = 0;
  $summe_gesamt = 0;
  $summe_heute = 0;
  $summe_gestern = 0;
  $summe_diese_woche = 0;
  $summe_letzte_woche = 0;
  while(isset($daten[$count1][0]))
    {
     $summe_gesamt = $summe_gesamt + $daten[$count1][1];
     $summe_heute = $summe_heute + $daten[$count1][3];
     $summe_gestern = $summe_gestern + $daten[$count1][4];
     $summe_diese_woche = $summe_diese_woche + $daten[$count1][6];
     $summe_letzte_woche = $summe_letzte_woche + $daten[$count1][7];
     echo "<tr>\n";
     echo "<td>".$daten[$count1][0]."</td><td>".$daten[$count1][1]."</td><td>".$daten[$count1][3]."</td><td>".$daten[$count1][4]."</td><td>".$daten[$count1][6]."</td><td>".$daten[$count1][7]."</td>\n";
    echo "</tr>\n";
     $count1++;
    }
     echo "<tr>\n";
     echo "<td>Gesamt</td><td>".$summe_gesamt."</td><td>".$summe_heute."</td><td>".$summe_gestern."</td><td>".$summe_diese_woche."</td><td>".$summe_letzte_woche."</td>\n";
    echo "</tr>\n";
?>
  </table>

</body>
</html>
 
Zuletzt bearbeitet:
Werbung:
Spätestens jetzt würde ich auf eine DB umsteigen, weil mit der Aufwand mit einer CSV-Datei zu groß wäre :p:D
 
Respekt.Gefällt mir.
Ich muß mich erst mal bedanken bei euch beiden.
Ihr habt mir mehr geholfen als wie ich mir vorgestellt habe.
Da es an diesen Script nicht mehr viel zu ändern gibt,werde ich mir mal noch was einfallen lassen was ich bauen könnte.
Beispiele wie man das um setzen kann habt ihr mir ja gezeigt.
Eine frage hier zu

Spätestens jetzt würde ich auf eine DB umsteigen, weil mit der Aufwand mit einer CSV-Datei zu groß wäre :p:D
was wäre den der Vorteil daran.
Ist das ein großer unterschied ob das Php Script das in einer csv (zb auch txt) schreibt oder in einer Datenbank?
Bleibt das Script nicht das gleiche und es ändert sich nur der Speicherort ?

EDIT. Danke für die Komentare im Script ,die erklären mir einige dinge die ich noch nicht kannte
 
Werbung:
Habe eine Idee,aber mein Googeln hat keine bzw zweifelhafte aus sagen gegeben.
Zur idee.
Ein besucher ist auf meiner Startseite und möchte bei mir auf Seite xy gehen.
Die Seite ist zb 2 Mb gross.
Das Laden kann je nach Download breite etwas dauern.
Das Script soll die aktuelle Download geschwindigkeit anzeigen und damit den Rest Download berechnen bis die Seite geladen ist.(Zb durch ein Balken )


Das berechnen ist ja kein Problem da ich die grössen der Seiten kenne.
Meine Frage ist ob man den aktuellen Geschwindigkeits verkehr zwischen pc und Server auslesen kann.

Hat php da Befehle oder möglichkeiten da drauf zu zu greifen?
Mit Js läst sich ja grosse Bilder laden und wenn der onload greift wird die Zeit gemessen.
Etwas ungenau finde ich das schon.
Kann php das besser ?


EDIT:
Suche gerade einen ersatz für basename().
Wollte das der ganze Pfad angezeigt wird ,damit ich bei der Ausgabe einen Funktionierenden Link bekomme.
basename()
dirname()
Ist nur ein Teil der url.
parse_url() da muß man die url erst zusammen bauen.
Gibt es da was ,was den komplette Link zurück gibt in einen Stück?
Habe bis jetzt erst nur das gefunden.

DOPPEL EDIT:
Habs so gemacht .Oder geht es einfacher?
Code:
$filename =getCurrentUrl();

    function getCurrentUrl() {
        return 'http://'.$_SERVER['HTTPS']. $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    }
 
Zuletzt bearbeitet:
@basti1012 ... wie wäre es denn mal mit einem neuen Threat - denn Ermitteln einer URL mit PHP hat ja nun wahrlich nichts mehr mit der Überschrift von diesem hier zu tun ;)!
 
Werbung:
was wäre den der Vorteil daran.
Das doch recht aufwändige Berechnen fällt mit einer Datenbank weg, weil man das bei vernünftigem Tabellendesign der DB überlassen kann.

Ist das ein großer unterschied ob das Php Script das in einer csv (zb auch txt) schreibt oder in einer Datenbank?
Bleibt das Script nicht das gleiche und es ändert sich nur der Speicherort ?
Ja natürlich, das wird dann bis auf wenige Zeilen ein komplett neuer Quellcode

Bleibt das Script nicht das gleiche und es ändert sich nur der Speicherort ?
Das Script, wie schon erwähnt, ändert sich fast komplett.


Das Script soll die aktuelle Download geschwindigkeit anzeigen und damit den Rest Download berechnen bis die Seite geladen ist.(Zb durch ein Balken )
Warum suchst du dir zum lernen von PHP Dinge aus, die in der Realität kein Mensch braucht.
Auch wenn es davon hunderte im Netz gibt, aber ein Gästebuch ist zum Einsieg relativ brauchbar. Und verzichte am Anfang auf deine Spielereien, also keine JavaScript-Tricks bzw. Effekte

Habs so gemacht .Oder geht es einfacher?
Das ist schon so ok.
 
Warning: imagettftext() [function.imagettftext]: Could not find/open font in

Das sagt doch alles aus, oder? Der Rest sind Folgefehler!

Es wäre auch nicht schlecht, wenn du uns das Script zeigen würdest, denn das ist hier ein Forum und keine Quiz-Show, in der man mit Raten weiter kommt.
 
Werbung:
Der besucherzähler ist ja schön und gut ,aber macht irgendwie probleme.
Sobald das GästebuchScript fertig ist muß ich dieses Script ändern das es mit DB läuft.
Aber dauert noch etwas.
Deswegen wäre eine schnelle Lösung gut .
Es geht um include().
das Script läuft gut .
Nur jetzt wollte ich mein Server aufräumen und habe das Script in ein Ordner gepackt.
Code:
http://sebastian1012.bplaced.net/homepagebasti1012/besucherzahler/besucherzahler_erstellung.php
Die Seiten die gezählt werden sollen sind auch in Ordnern.
Habe es so versucht
Code:
 <?php include('../homepagebasti1012/besucherzahler/besucherzahler_erstellung.php'); ?>

 <?php include('/homepagebasti1012/besucherzahler/besucherzahler_erstellung.php'); ?>

 <?php include('/besucherzahler/besucherzahler_erstellung.php'); ?>

 <?php include('../besucherzahler/besucherzahler_erstellung.php'); ?>
Und noch andere Varianten.Es kommt immer Fehler das nicht geöffnet werden kann.
Dann habe ich den kompletten Link als include genommen.
Fehler ist dann weg ,aber das Script läuft einfach nicht ,keine Funktion keine Fehler Report.
Wie kann man das beheben?
Ich weiß DB ,das kommt nach GB, und das schaffe ich dann auch alleine hoffe ich zumindest.
 
Werbung:
Zurück
Oben