WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Array in Datei schreiben

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Array in Datei schreiben - 13 Juni 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Array in Datei schreiben
languitar
Foren-Team
Threadstarter




Beiträge: 2795

Ich versuch mich mal wieder an nem simplen Textcounter mit IP sperre und wollte das jetzt so realisieren, dass ich in einem Array 'datum' => heute und dann die ganzen heutigen IPs schreibe. Das ganze wollte ich dann in ner Textdatei speichern und bei jedem aufruf des Counters erstmal überprüfen, ob das Datum gleich ist, sont wird das array gelöscht oder ansonsten die IPs überprüfen.
Ich hab aber momentan das Problem, dass wenn ich das Array in ner Date speichern will da immer nur "Array" steht und nicht der Inhalt. Wie mach ich das denn???

Gruß
Johannes

  Profil   Editieren   Zitieren
Can
Halbgott




Beiträge: 1324

Wenn es ein normales index-orientieres Array ist, musst du es in einer Schleife durchgehen und jedes Element speichern:

$file=fopen("datei.txt","w");
for ($idx=0;$idx fputs($file,$array . "n");
fclose($file);

Das Lesen ist erheblich einfacher:

$array=file("datei.txt");

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

danke, genau das brauchte ich

  Profil   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

son mist, ich benutze folgenden code und in der datei steht dann nur:
Array
Array


Code:
/*--Beziehen der IP des Besuchers--*/
$ip = getenv("REMOTE_ADDR");

/*--Beziehen des aktuellen Datums--*/
$date = date("d.m.Y");

$log = array();
$log[] = $date;
$log[] = $ip;
print_r($log);

$datei = fopen("ip.txt","w");
for ($idx=0;$idx fputs($datei,$log . "n");
fclose($datei);

  Profil   Editieren   Zitieren
c3o
Posting-Schinder




Beiträge: 585

Du musst
fputs($datei,$log . "n");
durch
fputs($datei,$log[$idx] . "n");
ersetzen.

Eine einfachere Möglichkeit, die das Array in nur einer Zeile speichert (und wohl auch mit multidimensionalen Arrays, Hashes usw funktioniert), wäre aber das:

$datei = fopen("ip.txt","w");
fputs($datei,serialize($log));
fclose($datei);

und zum Lesen:

$inhalt = unserialize(implode('', file('ip.txt')));

  Profil   E-Mail   Website   Editieren   Zitieren
Can
Halbgott




Beiträge: 1324

*mich-schäme-und-für-den-restlichen-abend-im-boden-versink*

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

danke, habs auf jedenfall jez schon etwas weiter, dafür kommen jez die nächsten probleme. der Code ist jetzt (völlig unformatiert) dieser:

/*--Beziehen der IP des Besuchers--*/
$ip = getenv("REMOTE_ADDR");

/*--Beziehen des aktuellen Datums--*/
$date = date("d.m.Y");

/*--Beziehen des aktuellen Counterstandes aus Datei--*/
$counter = file_get_contents("stand.txt");
echo "$counter";

/*$log = array();
$log[] = $date;
$log[] = $ip;*/

/*$datei = fopen("ip.txt","w");
for ($idx=0;$idx fputs($datei,$log[$idx] . "n");
fclose($datei);*/

/*--ip.txt zum Vergleich in Array &log lesen--*/
$log = file("ip.txt");
if ($log[0] = $date) {
/*--Wenn Datum gleich, dann suchen ob IP vorhanden--*/
foreach ($log as $value) if ($value = $ip) $vorhanden = 1;
//echo "$vorhanden
";
/*--Wenn die IP nicht vorhanden ist, wird der Counter um 1 erhöht und die IP geschpeichert--*/
if ($vorhanden = 1) {
$log[] = $ip;
print_r($log);
$counter++;
$datei = fopen("stand.txt","w"); //Counterstand speichern
fputs($datei,$counter);
fclose($datei);
$datei = fopen("ip.txt","wb"); //IPs speichern
foreach ($log as $value)
fputs($datei,$value . "n");
fclose($datei);
};
};

Das erste Problem ist, dass er mir die Variable $vorhanden nicht auf 1 setzt, obwohl die IP in dem Array vorhanden ist. Desswegen hab ich auch zum weiteren Test die nächste IF-Abfrage auch falschrum gesetzt. musst jetzt ncht beachtet werden.
Da ist aber das problem, wenn ich die Seite mehrmals aktualisiere sieht das arra plötzlich so aus:

Array ( [0] => 18.01.2003 [1] => 127.0.0.1 [2] => [3] => [4] => [5] => 127.0.0.1 [6] => [7] => 127.0.0.1 [8] => 127.0.0.1 )

Der bastelt mir in der Datei ip.txt also unmengen leerzeilen rein und ich weiß nicht wieso. Zum testen musst du die beiden Dateien ip.txt und stand.txt gerade anlegen.
Und was ich auch nicht verstehe: Wieso steht im ersten Schlüssel des Arrays immer das Datum. das hab ich doch gar nicht angegeben, dass er das machen soll. steht doch nur als Kommentar da.

Gruß
Johannes

  Profil   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

hab jetzt glaube ich mein Problem gefunden, weiß aber nicht, wie ich das ändern kann.
Zum einen hab ich ein "=" in den Abfragen vergessen. Das größere Problem ist aber, dass ich mit jedem Zeilenumbruch in der datei ip.txt im array (also wenn ich das neu reinlade) ein Leerzeichen hinter meinen Wert bekomme
Wie kann ich das denn ändern?

  Profil   Editieren   Zitieren
c3o
Posting-Schinder




Beiträge: 585

Das kommt wohl davon, dass die Elemente des Arrays nach dem Auslesen mit file() jeweils am Ende noch einen Zeilenumbruch n haben. Beim neu speichern hängst du den aber nochmal an -> Leerzeilen dazwischen.
Den müsstest du rausfiltern { $log[$i] = str_replace("n", ', $log[$i]) } oder du nimmst die Methode die ich früher gepostet hab, wo du dich mit Zeilenumbrüchen nicht auseinanderschlagen musst weils in einer einzigen Zeile gespeichert wird.

  Profil   E-Mail   Website   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

habs inzwischen alle s gelößt, nur mit tripod zusammen läuft das leider nicht...

  Profil   Editieren   Zitieren
c3o
Posting-Schinder




Beiträge: 585

Wieso denn nicht?

[Übrigens amüsiere ich mich gerade über meine Wortschöpfung "auseinanderschlagen".. "herumsetzen" wär auch ganz nett]

  Profil   E-Mail   Website   Editieren   Zitieren
languitar
Foren-Team
Threadstarter




Beiträge: 2795

Hab mit FTP schon mmächtig Probleme meine Dateien hochzubekommen. Die kommen ständig leer an und das gleich scheint auch mit dem fputs zu passieren. Der Counter fängt immer mal wieder bei 0 an zu zählen...

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Array in Datei schreiben

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Array in Datei schreiben im Forum Homepage Hosting AntwortenLetztes Posting
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop



Besucher : 8021632    Heute : 681     Gestern : 2313     Online : 36     13.6.2024    15:28      2 Besucher in den letzten 60 Sekunden        
alle 30.00 Sekunden ein neuer Besucher
Nach oben