Ergebnis 1 bis 8 von 8

Thema: Angehängte leerstelle bei fgets()

  1. #1
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard Angehängte leerstelle bei fgets()

    Ich würde gerne aus einer Datei jede zeile einzeln herauslesen. Dazu habe ich folgendes gemacht:
    PHP-Code:
    while ($zeile) {
        
    $i++;
        
    $array[$i]=fgets($file10000);
        
    $zeile=$array[$i];

    Funktioniert auch super, nur habe ich das Problem, das zumindest XAMPP an jeden ausgelesenen String eine Leerstelle macht. Aber das ganz komische ist, bei einer Zeile macht er es nicht, es ist auch nicht die Letzte. Deswegen abe ich mich gerade sehr gewundert.
    Auf jeden fall bitte ich um hilfe gegen die Leerzeichen. Danke im vorraus.
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  2. #2
    Bandit
    Gast

    Standard AW: Angehängte leerstelle bei fgets()

    Warum benutzt du nicht die Funktion file? Außerdem ist die Schleife schlecht programmiert, denn du hängst auch ein Element rein, was es am Ende nicht gibt. Und mit trim bekommst du den Rest hin.

  3. #3
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Angehängte leerstelle bei fgets()

    Welche element häng ich rein? UNd es klappt jetzt mit file, nur iwie weiss ich jetzt nciht genau, wei ich alle elemente da mit trim() bearbeiten soll. Eine For-Each Schleife wäre schon von Nützen, aberich weiss zu wenig über sie. So?:
    PHP-Code:
    for each ($array as $element) {
        
    $element=trim($element);

    Geändert von Tobse (03.09.2009 um 12:02 Uhr)
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  4. #4
    Bandit
    Gast

    Standard AW: Angehängte leerstelle bei fgets()

    Deine Schleife endet, wenn $zeile nix mehr hat. Und wo kommt $zeile her?

    $zeile=$array[$i];

    Du solltest vielleicht mal die Doku lesen, da steht nämlich ein Beispiel, wie man das richtig macht: http://de2.php.net/manual/de/function.fgets.php
    Geändert von bandit600 (03.09.2009 um 12:04 Uhr)

  5. #5
    Meister(in)
    Registriert seit
    05.03.2006
    Alter
    29
    Beiträge
    432
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Angehängte leerstelle bei fgets()

    PHP-Code:
    $file fopen("/path/file""r");
    while (
    $line fgets($file))
    {
    // z.B.
    $lines[] = trim($line);
    }
    fclose($file); 
    Ganz einfach!

  6. #6
    Bandit
    Gast

    Standard AW: Angehängte leerstelle bei fgets()

    Zitat Zitat von Tobse Beitrag anzeigen
    Eine For-Each Schleife wäre schon von Nützen, aberich weiss zu wenig über sie.
    Steht doch alles in der Doku, musst du nur mal lesen und die Beispiele beachten!
    PHP-Code:
    <?php
      
    function trim_data(&$item)
      {
          
    $item trim($item);
      }
          
      
    $data file("datei.txt");
      
      
    array_walk($data"trim_data");
      
      foreach (
    $data as $value)
        echo 
    "***$value***<br>\n";
    ?>

  7. #7
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: Angehängte leerstelle bei fgets()

    Ok, danke ich habs gelöst. So:
    PHP-Code:
    $file=file("file.txt");
    $i=0;
    while(
    $i<count($file)) {
        
    $array[$i]=trim($array[$i]);
        
    $i++;

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  8. #8
    Bandit
    Gast

    Standard AW: Angehängte leerstelle bei fgets()

    Das wäre die simple Version, aber da man soetwa häufiger braucht:
    PHP-Code:
    <?php
       
    function readFileTrimmed($filename)
       {
           
    $result false;
           
           if (
    file_exists($filename))
           {
               
    $result file($filename);
               
               foreach (
    $result as $key => $value)
                 
    $result[$key] = trim($value);
           }
           
           return 
    $result;
       }
       
       
    $data readFileTrimmed("datei.txt");
       
       if (
    $data === false)
         echo 
    "Fehler beim Lesen der Datei";
       else
         
    print_r($data);
    ?>

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •