tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
17
ZUGRIFFE
478
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Nick Scharz Nick Scharz ist offline Rookie
    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!
     

  2. #2
    Avatar von TwoFaze
    TwoFaze TwoFaze ist offline Mitglied Gold
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe (BW)
    Beiträge
    162
    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.
    PHP-Code:
    $array = array();
    $datei fopen("test.txt""r");

    while ( 
    $zeile fgets($datei,1024) ) {
      
    $array[] = $zeile;
    }

    fclose($datei); 
    Dann kannst du das Array mit der Funktion sort() einfach sortieren und dann ausgeben.
    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:.

  3. #3
    Registriert seit
    Feb 2005
    Ort
    NRW
    Beiträge
    460
    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;
     
    ?>
     

  4. #4
    Nick Scharz Nick Scharz ist offline Rookie
    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
     

  5. #5
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Versuche es mal so:
    PHP-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;
    ?>
    Gruss Dr Dau
     
    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)

  6. #6
    Nick Scharz Nick Scharz ist offline Rookie
    Registriert seit
    Jul 2006
    Ort
    Ruhrgebiet
    Beiträge
    9
    Perfekt! Funktioniert einfach alles... Nochmal vielen dank!
     

  7. #7
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    .....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)

  8. #8
    Nick Scharz Nick Scharz ist offline Rookie
    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:

    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); 
    Nun müsste das ganze ja an die Stelle des Fragezeichens, nur weiß ich leider nicht wie im ftp die Textdatei geöffnet bekomme... Könntest du mir nochmal helfen? Bzw. macht es überhaupt Sinn das ganze so zu machen?

    Gruß
    Nick Scharz
     

  9. #9
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Lade die Datei runter und greife dann lokal darauf zu.
    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);
    ?>
    "kopie.txt" ist der Name den die Datei nach dem runterladen bekommt.
    "./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)

  10. #10
    Nick Scharz Nick Scharz ist offline Rookie
    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
     

  11. #11
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    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)

  12. #12
    Nick Scharz Nick Scharz ist offline Rookie
    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...
     

  13. #13
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    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. #14
    Nick Scharz Nick Scharz ist offline Rookie
    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
     

  15. #15
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    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

  1. Antworten: 3
    Letzter Beitrag: 10.12.08, 12:01
  2. Plakate/Poster so aufhängen das man sie später weiter verwenden kann
    Von Jan-Frederik Stieler im Forum Creative Lounge
    Antworten: 4
    Letzter Beitrag: 01.07.06, 13:40
  3. Forms mit Weiter-Button weiter schalten
    Von FutureTeam im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 11.04.05, 13:44
  4. Batch-Datei: Suchergebnis weiter verwenden
    Von neo-pixel im Forum Sonstige Sprachen
    Antworten: 1
    Letzter Beitrag: 10.04.05, 01:31
  5. Mal weiter oben mal weiter unten
    Von redX im Forum HTML & XHTML
    Antworten: 0
    Letzter Beitrag: 28.08.04, 14:43