ERLEDIGT
NEIN
NEIN
ANTWORTEN
17
17
ZUGRIFFE
478
478
EMPFEHLEN
-
12.07.06 06:15 #1
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hiho =)
Ich möchte mit der Datei index.php eine Textdatei auslesen die sich in einem andern Ordner auf dem Server befindet (und sich jede Minute ändert)… Die Textdatei enthält in jeder Zeile einen Name (die Anzahl ist verschieden), so zum Beispiel:
Manuel
Herbert
Sascha
Nick
Die Namen bräuchte ich dann alphabetisch (nich ganz so wichtig) geordnet durch ein Komma getrennt zum Beispiel als $namen. So zum Beispiel:
Herbert, Manuel, Nick, Sascha
Dann kommt noch was erschwerend hinzu, in der txt-Datei befinden sich immer zwei Namen die nicht mit angezeigt werden sollen (immer die gleichen). Ich hab jetzt schon viel rumprobiert, allerdings wars dann weder gar nicht durch ein Komma getrennt oder nach dem letzten Name war auch noch ein Komma, und das sortieren der Namen sowie das rausnehmen der zwei Namen hab ich gar nicht hinbekommen. Ich bin leider noch nen totaler Anfänger was php betrifft… Kann mir jemand helfen? Bzw. is sowas überhaupt möglich? Für Hilfe wäre ich dankbar!
-
Wie du aus einer Datei ließt scheinst du ja schon herausgefunden zu haben

Versuch doch mal, jede Zeile (also jeden Namen) in ein Array zu packen.
Dann kannst du das Array mit der Funktion sort() einfach sortieren und dann ausgeben.PHP-Code:$array = array();
$datei = fopen("test.txt", "r");
while ( $zeile = fgets($datei,1024) ) {
$array[] = $zeile;
}
fclose($datei);
Um die 2 Namen zu ignorieren verwendest du einfach eine if-Anweisung:
PHP-Code:sort( $array );
foreach( $array as $name ) {
if( $zeile != "bösername1" && $zeile != "bösername2" ) {
echo $name.", ";
}
}
Geändert von TwoFaze (12.07.06 um 08:33 Uhr)
.:Zeremonienmeister II. des 1. offiziellen Sven Uwe Fan-Clubs:.
-
Noch eine Möglichkeit:
PHP-Code:<?php
$file = file('test.txt');
natsort($file);
for($i=0;$i < count($file);$i++){
$name_list[] = trim($file[$i]);
if($name_list[$i] != 'Toni' && $name_list[$i] != 'Fritz') {
$new_name[] = $name_list[$i];
}
}
$new_text = implode(',',$new_name);
echo $new_text;
?>
-
12.07.06 14:11 #4
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hiho =)
Erstmal vielen dank an euch zwei!
Zum ersten: Das Problem mit dem Komma bleibt dort leider und die Namen werden leider och nich raus genommen....
Zum zweiten: Klappt wirklich super! Nur leider wirds nich sortiert, was aber och nich wirklich wichtig ist...
Eine Frage hätte ich noch, ists möglich verschiedenen Namen-Gruppen bestimmte formatierungen zuzuweisen ohne das das Komma davon beftroffen ist? (So etwa drei Gruppen wären das, und es sind nicht immer alle Namen aus der Gruppe vorhanden...)
Zum Beispiel:
Nick
Sascha
= <b><font color="#FF0000"></font></b>
= Andreas, Nick, Michael, Sascha
-
12.07.06 17:19 #5
Hallo!
Versuche es mal so:
Gruss Dr DauPHP-Code:<?php
$file = file("datei.txt");
for($i=0; $i < count($file); $i++) {
$name_list[] = trim($file[$i]);
if( ($name_list[$i] != "Manuel") AND ($name_list[$i] != "Herbert") ) {
$new_name[] = $name_list[$i];
natcasesort($new_name);
}
}
$new_name = str_replace("Nick", "<b><font color=\"#FF0000\">Nick</font></b>", $new_name);
$new_name = str_replace("Sascha", "<b><font color=\"#FF0000\">Sascha</font></b>", $new_name);
$new_text = implode(", ",$new_name);
echo $new_text;
?>Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
12.07.06 19:23 #6
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Perfekt! Funktioniert einfach alles... Nochmal vielen dank!
-
12.07.06 20:02 #7
.....und wird sogar (unabhängig von Gross-/Kleichschreibung) sortiert.

Wie Du weitere Namen aus der Suche auschliesst und/oder weitere Namen farbig/fett darstellst, ist ja sicherlich selbsterklärend.
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
13.07.06 13:31 #8
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hiho =)
Japp, das hab ich soweit alles hin bekommen... Es hat sich allerdings ein neues Problem ergeben... Ich hab zum testen eine Textdatei in nem andern Ordner auf meinem Server verwendet und ging davon aus die original Datei auch einfach über nen Link öffnen zu können... Allerdings musste ich feststellen das ich nur via ftp an die Textdatei heran komme. Ich hab nen bissel rum gesucht und rum probiert und dabei is das raus gekommen:
Nun müsste das ganze ja an die Stelle des Fragezeichens, nur weiß ich leider nicht wie im ftp die Textdatei geöffnet bekomme...PHP-Code:$ftp_server = "xxx";
$ftp_user_name = "xxx";
$ftp_user_pass = "xxx";
$conn_id = ftp_connect("$ftp_server");
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
?
ftp_quit($conn_id);
Könntest du mir nochmal helfen? Bzw. macht es überhaupt Sinn das ganze so zu machen?
Gruß
Nick Scharz
-
14.07.06 00:51 #9
Lade die Datei runter und greife dann lokal darauf zu.
"kopie.txt" ist der Name den die Datei nach dem runterladen bekommt.PHP-Code:<?php
$ftp_server = "xxx";
$ftp_user_name = "xxx";
$ftp_user_pass = "xxx";
$conn_id = ftp_connect($ftp_server);
ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
$result = @ftp_get($conn_id, "kopie.txt", "./www/original.txt", FTP_ASCII);
if($result) {
echo "Datei wurde runtergeladen.";
} else {
echo "Es ist ein Fehler aufgetreten.";
}
ftp_quit($conn_id);
?>
"./www/original.txt" ist der Pfad/Dateiname zu der Datei auf dem entferntem Server, ausgehend vom Loginverzeichnis des FTP-Servers.
FTP_ASCII gibt die Anweisung die Datei beim Download als Textdatei zu behandeln.
Dort wo "Datei wurde runtergeladen." per echo() ausgegeben wird, kannst Du den Code zum auslesen der Datei einsetzen..... dann wird dieser nämlich nur dann ausgeführt wenn die Datei auch runtergeladen wurde.
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
14.07.06 16:56 #10
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hiho =)
Funktioniert super! Thx!
Ich habs nun so gemacht das ich die ftp Abfrage in ner seperaten Datei mache und mit nem Cronjob regelmäßig ausführe. In der index frage ich dann jeweils nur die Textdatei ab die ja auf meinen Server regelmäßig gespeichert wird... (Damit nicht bei jedem refresh der index eine ftp-Verbind hergestellt werden muss.)
Sag mal bekomme ich auch sowas wieder getrennt:
%!%#xx-xxxxxxx7@12.07.2006@20:35@PM
Die Zahl 7, das Datum, die Zeit und PM sind variabel. Ich brächte im im Grunde die Zahl, das Datum und die Zeit jeweils als $user, $datum, $zeit. Ich hab versucht das ganze mit list zu trennen, bekomme allerdings als Ergebnis immer nur array... Ich hoffe ich strapiziere deine Gelduld hier nicht zu viel...
Gruß
Nick Scharz
-
14.07.06 17:47 #11
Ist die Zahl 7 denn immer einstellig?
Dann würde ich den String mit explode() am @ zerlegen und vom ersten Teil die Zahl mit substr() rausholen.
Wenn die Zahl 7 aber auch mehrstellig sein könnte (also z.b. auch mal 12), musst Du wohl mit regulären Ausdrücken arbeiten..... mit denen stehe ich aber auf Kriegsfuss.
Geändert von Dr Dau (14.07.06 um 17:52 Uhr)
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
14.07.06 19:07 #12
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hiho =)
Inzwischen sieht das ganze so aus (habs etwas angepasst):
%!%#xx-xxxxxx,7,12.07.2006,20:35,PM
Lassen sich so die Teile raus sortieren? (Die Zahl kann im überigen auch zweistellig sein...) Ich habs mit explod versucht, das Ergebnis ist leider immer Array...
-
14.07.06 20:14 #13
Nun wo die 7 abgetrennt ist, spielt es auch keine Rolle mehr wie lang sie ist.
Ich hoffe nur dass sonst kein Komma vorkommt..... dann lässt es sich als Trennzeichen nutzen:
PHP-Code:<?php
$string = "%!%#xx-xxxxxx,7,12.07.2006,20:35,PM";
$array = explode(",", $string);
echo $array[0]."<br>"; // %!%#xx-xxxxxx
echo $array[1]."<br>"; // 7
echo $array[2]."<br>"; // 12.07.2006
echo $array[3]."<br>"; // 20:35
echo $array[4]."<br>"; // PM
?>Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
-
14.07.06 20:39 #14
- Registriert seit
- Jul 2006
- Ort
- Ruhrgebiet
- Beiträge
- 9
Hi,
danke für deine immer sehr schnellen Antwort!
So hab ichs auch in etwa versucht... Das Ergebnis ist dabei leider immer Array... Kanns damit zu tun haben das hier auch eine Datei geöffnet wird aus der das ganze ausgelesen werden muss? Denn wenn ich das ganze normal eintrage gibts den Array Fehler nicht...
Gruß
Nick Scharz
-
14.07.06 20:51 #15
Wenn Du eine Datei ausliest, hast Du schon ein Array mit mehreren Indizes (Zeilen).
Diese müsstest Du einzeln in einer while()-Schleife mit explode() abarbeiten.
Ich guck aber erstmal Pro7.
Schri-Schra-Schrödi *g*
mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
Dinge, die mit Tabellen besser klappen als mit CSS
Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
Meine Links zum Thema Linux (Last update: 29.10.2011)
Kein Busen ist so flach wie das Niveau dieser Party!
----
Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
----
Ich habe 3 Kinder und kein Geld!
Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)
Ähnliche Themen
-
auslesen einer textdatei und in eine neue textdatei schreiben
Von prinzessin4444 im Forum C/C++Antworten: 3Letzter Beitrag: 10.12.08, 12:01 -
Plakate/Poster so aufhängen das man sie später weiter verwenden kann
Von Jan-Frederik Stieler im Forum Creative LoungeAntworten: 4Letzter Beitrag: 01.07.06, 13:40 -
Forms mit Weiter-Button weiter schalten
Von FutureTeam im Forum .NET ArchivAntworten: 3Letzter Beitrag: 11.04.05, 13:44 -
Batch-Datei: Suchergebnis weiter verwenden
Von neo-pixel im Forum Sonstige SprachenAntworten: 1Letzter Beitrag: 10.04.05, 01:31 -
Mal weiter oben mal weiter unten
Von redX im Forum HTML & XHTMLAntworten: 0Letzter Beitrag: 28.08.04, 14:43





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren