Zeile überprüfen, bei false löschen!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeile überprüfen, bei false löschen!

    Guten Tag,

    ich lasse mit diesen Script auf meinem FTP Server einen Ordner auslesen und per PHP in eine Auswahlliste ausgeben. Das Problem ist wenn er eine Datei mit der Endung .txt findet soll er die komplette Zeile löschen und nicht im Auswahlmenü anzeigen lassen. z.Z löscht er nur das .txt. Wie kann ich das Problem lösen?

    PHP-Code:
    <?
    $ftp_server="0.0.0.0";
    $ftp_user_name="user";
    $ftp_user_pass="passwd";

    $conn_id = ftp_connect($ftp_server, 21); 

    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    ftp_chdir($conn_id , "logs/");

    $filelist = ftp_nlist($conn_id, "/");

    echo "<select name=\"s1\">";

    for ($i=0;isset($filelist[$i]);$i++)
    {
    $newfilelist=str_replace(".txt", "",$filelist[$i]);
    echo "<option value=$newfilelist>$newfilelist</option>";
    }
    echo "</select>";

    ftp_close($conn_id); 
    ?>

  • #2
    txt findet soll er die komplette Zeile löschen und nicht im Auswahlmenü anzeigen lassen. z.Z löscht er nur das .txt. Wie kann ich das Problem lösen?
    Du machst ja auch nur eine Ersetzung von .txt! Von dem her Works as Designed. Mach die Prüfung auf .txt mittels strpos() und wenn die Endung gefunden wird, dann machst du ein continue; Damit wird direkt der nächste Durchlauf der Schleife gemacht.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      zb so:
      PHP-Code:
      for ($i=0;isset($filelist[$i]);$i++)
      {
      if (!
      strstr($filelist[$i],".txt")
      {
      echo 
      "<option value=\"$filelist[$i]\">$filelist[$i]</option>";

      ps. nicht getestet...


      edit: ob mit strpos() oder mit strstr() sollte eigentlich egal sein, ... ... ... oder?
      **********
      arkos
      **********

      Kommentar


      • #4
        Anmerkung: Wenn Sie nur herausfinden möchten, ob ein bestimmter needle innerhalb von haystack vorkommt, verwenden Sie stattdessen die schnellere und weniger speicherintensive Funktion strpos().
        Aus dem Manual

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          1 performancepunkt für jah


          jah 1, arkos 0
          **********
          arkos
          **********

          Kommentar


          • #6
            jah 1, arkos 0
            OffTopic:

            Endlich hat die Schweiz Euch Deutsche mal geschlagen Jetzt weiss ich, dass wir nächstes Jahr Europameister werden


            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              PHP-Code:
              <?
              if (!strpos($filelist[$i], ".txt"))
              {

              }
              ?>
              Klappt wunderbar danke für den Tip

              Kommentar


              • #8
                Besser so
                PHP-Code:
                if (strpos($filelist[$i], ".txt") !== false
                Weil die Funktion gibt die die Pos von search in haystack zurück. Diese kann aber 0 sein (wenn der String damit beginnt). Zugegeben eine Dateiendung wird kaum als erstes stehen.
                Aber um solche mögliche Fehlerquellen gar nicht aufkommen zu lassen, solltest bei solchen Funktionen immer auch den Typ prüfen. Eine Position 0 würde in deiner Bedinung durchgehen und das wäre ungewollt.

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von jahlives
                  OffTopic:

                  Endlich hat die Schweiz Euch Deutsche mal geschlagen Jetzt weiss ich, dass wir nächstes Jahr Europameister werden


                  Gruss

                  tobi
                  neh schwalbe macht noch keinen sommer, freundchen
                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    Klappt alles wunderbar nur habe ich jetzt das nächste Problem. Die Dateien die er in der Auswahlliste ausgibt möchte ich alle weitergeben (Form)

                    wenn ich z.B auf der anderen Seite <? echo $s1; ?> mache zeigt er nur das an was ich im Auswahlmenü ausgewählt habe und zudem wenn mehrfach auswahl aktiviert ist zeigt er trotzdem nur 1 an. Woran liegt das?

                    Kommentar


                    • #11
                      <? echo $s1; ?>
                      register_globals !

                      Mal googlen

                      Gruss

                      tobi
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #12
                        register_globals ist in der php.ini on

                        Edit:

                        ich meine wenn im Auswahlmenü folgendes vorhaden ist:

                        Apfel
                        Zitrone
                        Birne

                        (mehrfachauswahl ist aktiviert)

                        und wähle alle aus dann gibt er nur Birne auf der Seite aus...

                        Kommentar


                        • #13
                          da solltest du nun

                          1) mal die selectbox zeigen, und

                          2) die seite, die die auswahl verarbeitet

                          bin im fehler-RATEN gerade ganz schlecht
                          **********
                          arkos
                          **********

                          Kommentar


                          • #14
                            PHP-Code:
                            <?

                            if ($page==""){

                            $ftp_server="0.0.0.0";
                            $ftp_user_name="user";
                            $ftp_user_pass="passwd";

                            $conn_id = ftp_connect($ftp_server, 21); 

                            $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
                            ftp_chdir($conn_id , "logs/");

                            $filelist = ftp_nlist($conn_id, "/");

                            echo "<form action=\"ftp.php?page=show\" method=\"post\">";
                            echo "<select name=\"s1\" multiple=\"multiple\">";

                            for ($i=0;isset($filelist[$i]);$i++)
                            {
                            $newfilelist=str_replace(".txt", "",$filelist[$i]);
                            echo "<option value=$newfilelist>$newfilelist</option>";
                            }
                            echo "</select>";
                            echo "</form>";

                            ftp_close($conn_id); 

                            }

                            if ($page=="show"){
                            echo $s1;
                            }

                            ?>
                            Hoffe so ist es verständlich

                            Kommentar


                            • #15
                              Wo ist 1) und wo ist 2) ???

                              Kommentar

                              Lädt...
                              X