Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Datei .. kanns nich beschreiben ^^

Diskussion: Datei .. kanns nich beschreiben ^^ im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Also ich musste ein Gästebuch mit Dateien schreiben In der "count.txt" habe ich alle beitrags id s gespeichert: 0 ...

Antwort
Alt 01.06.07, 17:53   #1 (permalink)
 
Registriert seit: 21.04.07
DerXenon Leistung: Facit NTK
Likes: 0
Datei .. kanns nich beschreiben ^^

Anzeige

Also ich musste ein Gästebuch mit Dateien schreiben
In der "count.txt" habe ich alle beitrags id s gespeichert:

0
1
2
3
4
5
6
7
8
9
10

so wie kann ich jetz aus einem Script heraus eine ID suchen und diese dann löschen ?
also in der Datei ? bisher hab ich es so versucht:

PHP-Code:

$filename 
"data/count.txt";
$handle fopen ($filename"r");
$contents fread ($handlefilesize ($filename));
fclose ($handle);

echo 
"<textarea>";
var_dump($contents);
echo 
"</textarea>";

$contents str_replace(trim($id)."\n","",$contents);

echo 
"<textarea>";
var_dump($contents);
echo 
"</textarea>";
$handle fopen ($filename"w");
$contents fwrite($handle,$contents);
fclose ($handle); 
manchmal löscht er die ID und manchmal nicht -> das is Obskur!
wie kann ich es sonst löschen ? vieleicht vor jede ID id: schreiben z.B.

id: 1

und dann :

$contents = str_replace("id: ".trim($id),"",$contents);

oder wie sonst ?

ps: mit mySQL würd ich es gern machen soll aber nicht klar ?! ok
DerXenon ist offline   Mit Zitat antworten
Alt 01.06.07, 19:39   #2 (permalink)
Member of Honour
 
Registriert seit: 02.10.01
Indi Leistung: Z3
Likes: 0
Standard

Ich hätte den Inhalt der Datei eher in ein Array gespeichert, dann den entsprechenden Schlüssel gelöscht und dann wieder gespeichert.

Zitat:
ps: mit mySQL würd ich es gern machen soll aber nicht klar ?! ok
Bedeutet was nun genau?
Indi ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 01.06.07, 19:56   #3 (permalink)
Themenstarter
 
Registriert seit: 21.04.07
DerXenon Leistung: Facit NTK
Likes: 0
Standard

Das ich es gern damit machen würde aber nicht darf !!

also in etwa so:

PHP-Code:
$count = array();
$file fopen("data/count.txt","r");

while(!
feof($file)){
array_push($count,fgets($file,100));
}

fclose($file);

//Den Array durchsuchen
$found array_search($id,$count);
unset(
$count[$found]);

$file fopen("data/count.txt","w");
for(
$i=0;i<=count($count);){
fwrite($file,$count[$i]);
}
fclose($file); 
habs jetz nich ausprobiert werds aber gleich machen naja ^.- danke schonmal
DerXenon ist offline   Mit Zitat antworten
Alt 02.06.07, 12:29   #4 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Arrow

Allgemeiner Hinweis:

Nur weil du mit Dateien arbeiten musst, heißt das ja noch nicht, dass du auch Klartext in die Dateien schreiben musst. Wenn du eine schöne Datenstruktur in PHP hast, z.B. eben die Beiträge als multidimentionales Array, dann kannst du das ja auch mittels serialize() als String in eine Datei schreiben. Wenn du das ganze wieder auslesen willst, gibt's dafür analog unserialize().

So musst du dich nicht um großartige Übersetzungen von Klartext in deine Datenstruktur kümmern. Wenn du dann beispielsweise einen Eintrag löschen willst, entfernst du einfach das entsprechende Array-Element und speicherst das ganze wieder serialisiert ab.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
Alt 02.06.07, 13:00   #5 (permalink)
 
Registriert seit: 23.03.05
xblax Leistung: 8086
Likes: 22
Standard

Zitat:
Original von LX
So musst du dich nicht um großartige Übersetzungen von Klartext in deine Datenstruktur kümmern. Wenn du dann beispielsweise einen Eintrag löschen willst, entfernst du einfach das entsprechende Array-Element und speicherst das ganze wieder serialisiert ab.
Der Nachteil dabei ist, dass das Ganze bei größeren Datenmengen nicht mehr wirklich handhabbar ist.
Falls du PHP 5 hast und SQLite benutzen darfst (ein Datenbanksystem dass auf einer Textdatei aufbaut) wäre das auch noch eine sehr gute Alternative.
xblax ist offline   Mit Zitat antworten
Alt 02.06.07, 13:59   #6 (permalink)
Themenstarter
 
Registriert seit: 21.04.07
DerXenon Leistung: Facit NTK
Likes: 0
Standard

Ich weiß zwar nicht genau wie viele Einträge es geben wird,
aber so über 500 dürften es schon werden...
ist das noch handhabbar ??

ps: außerdem wird das Script nur ab und zu vom Admin aufgerufen
(Um Müll oder Spamm zu löschen)
Mein Scruipt im Moment:

PHP-Code:
<?php
$count 
= array();
$count_tmp = array();

$file fopen("data/test.txt","r");

while(!
feof($file)){
    
$string fgets($file,100);
    
$string str_replace("\r\n","",$string);
    
$string str_replace("\n","",$string);
    
    
array_push($count,$string);
}
echo 
"count(count): ".count($count);

fclose($file);

echo 
"<pre>";   //Konzept testen
var_dump($count);
echo 
"</pre>";


//array durchsuchen und löschen.
$res array_search("2",$count);
if(!
res==0){
    unset(
$count[$res]);
}else{
    die(
"\$res = 0");
}

//temporären Array schreiben

$schleifen_durchlauf count($count);

for(
$i=0;$i<=$schleifen_durchlauf;$i++){
    if(!
strlen($count[$i])<=0){
        
array_push($count_tmp,$count[$i]);
    }    
}

$file fopen("data/test.txt","w");

$schleifen_durchlauf count($count_tmp);

for(
$i=0;$i<$schleifen_durchlauf;$i++){
    if(
$i==$schleifen_durchlauf-1){
        
fwrite($file,$count_tmp[$i]);
        break;
    }
    
fwrite($file,$count_tmp[$i]."\n");
}

fclose($file);

echo 
"<pre>";   //Konzept testen
var_dump($count_tmp);
echo 
"</pre>";

echo 
"count(count_tmp): ".count($count_tmp);

?>
Das funktioniert wunderbar:
var_dump():

$count:
array(6) {
[0]=>
string(1) "0"
[1]=>
string(1) "1"
[2]=>
string(1) "2"
[3]=>
string(1) "3"
[4]=>
string(1) "4"
[5]=>
string(1) "5"
}

$count_tmp:
array(5) {
[0]=>
string(1) "0"
[1]=>
string(1) "1"
[2]=>
string(1) "3"
[3]=>
string(1) "4"
[4]=>
string(1) "5"
}

Danke für eure Hilfe
DerXenon ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Datei .. kanns nich beschreiben ^^
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
VB.NET | txt Datei erstellen / beschreiben reaLInsanity Code Kitchen 6 13.01.08 19:40
LAN-XP meets Vista -Wer kanns? EXIT Network · LAN, WAN, Firewalls 1 04.01.08 11:32
Programmieraufgabe für euch(ich kanns nicht) Guyfawkes Code Kitchen 6 23.04.05 15:48
Programm zum Chipkarten beschreiben Master Fes Applikationen 2 13.04.05 19:53
Datei von Diskette wird nich mehr gelesen ! ina_karl Applikationen 9 03.01.03 03:08


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61