kostenloser Webspace werbefrei: lima-city


Fehler mit variablen Dateinamen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    boslev

    Kostenloser Webspace von boslev

    boslev hat kostenlosen Webspace.

    Hallo zusammen,

    Ich habe folgendes Problem:

    Ich möchte eine txt-Datei einlesen und des Array-Wert in einem Vergleich verwenden!

    Beispiel:
    $Wert = "TEST";
    $Datei = file("test.txt");
    $Probewert = $Datei[0];      // $Datei[0] hat ebenfalls den Wert "TEST"
    
    if ($Wert == $Probewert)
    {
    print ("Positive Match");
    }
    else
    {
    print ("No Match");
    }

    Dieser Teil funktioniert auch wunderbar und liefert "Positive Match"!
    ABER:

    Nun soll der Dateiname variabel sein:
    $dateiname = $_GET['file'];  //  "?file=test" an die URL angehängt
    $Wert = "TEST";
    $Datei = file($dateiname.".txt");
    $Probewert = $Datei[0];      // $Datei[0] hat ebenfalls den Wert "TEST"
    
    if ($Wert == $Probewert)
    {
    print ("Positive Match");
    }
    else
    {
    print ("No Match");
    }

    Dieser Teil liefert "No Match"!

    Zur Info:
    Auch bei der 2. Methode, kann das Programm den Wert einlesen...
    Ich kann den Wert auch mit "print ($Probewert);" ausgeben...
    Habe die Werte auch schon untereinander gedruckt und Leerzeichen o.ä. Unterschiede ausgeschlossen!
    Aber der Vergleich liefert immer ein"false"...

    Entweder ist es ein simpler Fehler, den ich nicht finde, oder der Vergleich ist so nicht möglich...

    Hoffe, das Ihr mir weiterhelfen könnt...

    LG boslev


    Beitrag zuletzt geändert: 5.5.2010 15:19:28 von boslev
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Dein Kommentar
    // $Datei[0] hat ebenfalls den Wert "TEST"

    ist nicht korrekt.
    Strings werden in Php wie Vektoren behandelt.
    In $Datei[0] steht also nur ein t.
    Ich möchte eine txt-Datei einlesen und des Array-Wert in einem Vergleich verwenden!

    Den Satz verstehe ich nicht.
    Ich denke die Funktionen strcmp()/stricmp() werden dir helfen.
    Gruß,
    dex



    @ franco-bez
    An sich gibt es keine Probleme. Strings sind schon immer char-"Array's" gewesen.

    Beitrag zuletzt geändert: 5.5.2010 13:32:30 von qap2
  4. Ist $Datei nun ein String oder ist es ein Array ?
    $Datei = $dateiname . ".txt" ; -> $Datei ist ein String
    $Datei[0]; -> Jetzt auf einmal ein Array ?

    Das kann ja nur Probleme geben.
  5. Autor dieses Themas

    boslev

    Kostenloser Webspace von boslev

    boslev hat kostenlosen Webspace.

    qap2 schrieb:
    Dein Kommentar
    // $Datei[0] hat ebenfalls den Wert "TEST"

    ist nicht korrekt.
    Strings werden in Php wie Vektoren behandelt.
    In $Datei[0] steht also nur ein t.


    Ich habe in der ersten Zeile der Textdatei "TEST" stehen
    und wenn ich $Datei[0] drucke, gibt das Programm auch "TEST" aus...
    Also kann in $Datei[0] eigentlich nicht nur ein "t" stehen...

    Aber ich werde mir die zwei Funktionen mal anschauen...

    LG boslev

    @qap2:
    strcmp() liefert mir "-2", also ebenfalls Ungleichheit als Ergebnis...
    Ich glaube, ich bin zu dumm dazu... ;)

    Beitrag zuletzt geändert: 5.5.2010 14:14:48 von boslev
  6. Ich glaube nicht, dass du zu dumm dafür bist, sondern dass du uns einen Teil deines Programms nicht zeigst und wir dir somit nicht auf den richtigen Pfad helfen.
    Wenn in $Datei[0] wirklich "TEST" steht, musst du ja davor die Datei eingelesen haben.
  7. Autor dieses Themas

    boslev

    Kostenloser Webspace von boslev

    boslev hat kostenlosen Webspace.

    Hallo zusammen...

    Sorry... Ich habe den file() Befehl vergessen...
    Habe es korrigiert!

    $Datei = file($dateiname.".txt");


    Das war aber nur ein Fehler beim Abschreiben...
    Mein Problem besteht weiterhin...

    LG boslev

    Beitrag zuletzt geändert: 5.5.2010 15:22:29 von boslev
  8. Dann schau doch mal genauer hin. Das gibt dir nicht "TEST", sondern "TEST\n" zurück.
  9. mal daran gedacht die get Variable zu trimmen?

    $dateiname = trim($_GET['file']);
  10. Autor dieses Themas

    boslev

    Kostenloser Webspace von boslev

    boslev hat kostenlosen Webspace.

    Hallo zusammen,

    trim(); war ein super Stichwort! DANKE!

    Aber "trim($Datei[0]);" war die Lösung...

    Jetzt funktioniert es... Danke @ll!

    LG boslev
  11. Problem gelöst, damit closed. Bei Rückfragen PN an mich!
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!