KNOWHOW? - Von mehreren Dateien den größten Zahl finden
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
beispiel
bezeichnung
brauch
datei
dateiname
datenbank
dokument
ermitteln
http
inhalt
jemand
server
sortieren
stehen
string
tabelle
tip
vergessen
zahl
-
Weis jemand wie man von mehreren Dateien die mit dem größten Zahl im Dokument finden lassen kann?
zb.
datei1.txt = "10";
datei2.txt = "4";
datei3.txt = "120";
hier also gewinnt datei3.txt
Am schluss soll dran stehen was im Dokument drin steht...
und eine IF Frage soll noch schauen was datei3 für eine bezeichnung hat
die bezeichnung steht in Variable $namedatei3
Es soll folgendermaßen als echo ausgegeben werden
"die datei mit der höchsten zahl (datei3.txt) + variablename ($namedatei3)" -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
hm... dein bsp is denke ich doof gewählt.
was meinst du denn nu? was soll durchsucht werden
der dokumentenname
oder der inhalt des dokuments? -
Stichwort http://de.php.net/fopen() und was dazu gehört, lies dich einfach mal durchs Manual.
Zum vergleichen http://de.php.net/preg_match().
Das sollte eigentlich alles sein, was du brauchst.
Viel Spaß beim Lesen und anschließendem Programmieren.
Gruß
Tim
Beitrag geändert: 2.1.2009 1:28:23 von tibel -
Wie tibel schon schrieb: Entweder mittels fopen() und fread() oder aber viel einfacher mit file_get_contents().
Ich gehe mal davon aus, dass in den Textdateien nichts anderes steht, als diese Zahl.
Das macht dann auch preg_match() überflüssig.
Schreibe stattdessen alle Dateinamen mit den Werten in ein Array und lasse dieses mit arsort() absteigend sortieren.
$values = array("datei1.txt" => "1", "datei2.txt" => "40", "datei3.txt" => "50", "datei4.txt" => "10");
arsort($values);
Dann kannst du mittels der Funktion each() den ersten Wert des Arrays ablesen:
$result = each($values);
echo $result['key']." hat den Wert ".$result['value'];
Überlege dir allerdings auch, ob du nicht besser eine MySQL-Datenbank verwenden solltest.
Dann könntest du sofort nur den höchsten Wert der Tabelle auslesen:
SELECT * FROM tabelle ORDER BY value DESC LIMIT 1;
gruß
ferdinand24
Beitrag geändert: 2.1.2009 2:12:28 von ferdinand24 -
ya aber datei1.txt und so sollen ja geladen werden.
das mit den zahlen war jetzt bloß ein beispiel was in der datei drin stehen könnte.
der server soll erst mal überprüfen welche datei die größte zahl als Inhalt hat.
kann mir jemand vlt nen tipp geben?
Was meinst du denn mit "größter Zahl als Inhalt"?
Der Schnipsel von mir weiter oben ermittelt doch, welche Datei die größte Zahl als Inhalthat.
Oder möchtest du feststellen, welche Datei den meisten Inhalt hat?
Beispiel:
datei1.txt: "gjklghjklghjklhlkhklhjkkjfhkldsgfjdjfsdjklfhkösdhfjkv,kd.hfklfljkhklfhsdklh"
ist länger als
datei2.txt: "hjkhjklhlkhklhjl"
Dann benutze einfach strlen(), um die Länge des mit file_get_contents() eingelesenen Strings zu ermitteln. Diesen kannst du dann in das Array schreiben, sortieren und du weißt, welche Datei am längsten ist. Die kannst du dann nochmals einlesen.
Oder geht es tatsächlich um Zahlen?
Ich rate dir nochmal wärmstens zur Verendung einer SQL-Datenbank. Dann hast du den ganzen Stress hier nicht, sondern kannst alles bequem in einer kleinen Abfrage unterbringen.
gruß
ferdinand24 -
sql kann ich vergessen ich hab bereits alles mit textdokumenten programmiert deswegen brauch ich das unbedingt mit solchen.
es geht nur um zahlen. die dokumente enthalten NUR zahlen -
sql kann ich vergessen ich hab bereits alles mit textdokumenten programmiert deswegen brauch ich das unbedingt mit solchen.
es geht nur um zahlen. die dokumente enthalten NUR zahlen
Dann ist doch mein ersten Beispiel wunderbar zu gebrauchen.
Lies die ganzen Dateien mit file_get_contents() in ein assoziatives Array (Key = Dateiname, Value = Dateiinhalt) und dann sortiere es und lies den ersten Eintrag ab. Das habe cih oben alles schon einmal erklärt ;)
Wenn du daran etwas nicht verstehst, dann sag bitte GENAU, WAS du nicht verstehst. Sonst kann dir schließlich niemand helfen.
gruß
ferdinand24 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage