Textdatei --> Leerzeichen

Nobse

Grünschnabel
Nabend,

ich versuche etwas aus einer Textdatei auszulesen, die Daten in der Textdatei haben pro Zeile folgenden Syntax:

datum;text1;text2;text3;zahl1;zahl2;zahl3

mich interessiert nur text3 und Datum, wobei Datum nicht wirklich wichtig ist. Ich habe angefangen mit

PHP:
$datei = 'E:\dietxt.txt';

$fp = fopen ($datei, "r");

while (!feof($fp))
      {

      $zeile  = fgets($fp,256);

      $diesezeile = split(';', $zeile, 7);
  
      $text3 = $diesezeile[3];

      $text3 = trim($diesezeile);

      echo "<b>".$text3."</b><br>";

      }

Nun zu meinem Problem ;)
Er gibt es mir richtig aus, allerdings mit einem Leerzeichen am Ende, was ich dort absolut nicht gebrauchen kann. ;)
Ich _dachte_ mit trim() hätte ich das beseitigt, dem war aber nicht so.

Und
PHP:
$text3 = substr($text3, 0, -1);
Löscht mir den letzten Buchstaben, aber NICHT das Leerzeichen.
*verweifel*

Die Funktion split() gibt ein Array zurück, und trim() löscht nur bei Strings die Leerzeichen, aber ich bilde mir ein das ich in dem moment wo ich dem Array eine Variable zugewiesen habe das es eine Variable mit dem _Teil_ Wert des Arrays ist.

Ich hoffe es versteht mich jemand und kann mir helfen. ;)

Danke!

Nobse
 
hi,

machs doch einfach so:

PHP:
$datei = 'E:dietxt.txt';

$fp = fopen ($datei, "r");

while (!feof($fp))
      {

      $zeile  = fgets($fp,256);

      $diesezeile = split(';', $zeile, 7);
  
      $text3 = trim($diesezeile[3]);

      echo "<b>".$text3."</b><br>";

      }

greetz Nova
 
Hallo,

bringt keinen Unterschied, ich _denke_ es liegt daran das split() ein Array zurück gibt, und trim() nur auf Variablen angewendet werden kann.
 
hi,

bist du dir auch 100% sicher das, dass leerzeichen auch aus der $text variable kommt und nicht vielleicht irgendwo anders her? weil ich möchte meinen trim($diesezeile[3]) sollte gehen, trim($diesezeile) natürlich nicht, weil du trim nicht auf einen ganzen array einsetzen kannst!

PS: wie äußert sich denn das leerzeichen?

greetz Nova
 
Also Nobse,

wenn alles nicht hilft dann versuchs mal so:

Code:
<?
$datei = 'text.txt';

$fp = fopen ($datei, "r");

while (!feof($fp))
      {

      $zeile  = fgets($fp,256);
	  
	  preg_match("/(.+?);.+?;.+?;(.+?);.+?;.+?;.+?/is",$zeile,$regs);
	
	  echo "Datum:<b>".$regs[1]."</b><br>";
	  echo "Text3:".$regs[2]."<br><br>";
	  }

?>

greetz Nova
 
Ich hab dein problem nicht ganz verstanden, aber mach es doch so:
PHP:
$zeile = file("test.txt");

for ($i=0; $i<count($zeile); $i++) {
  $zeile[$i] = trim($zeile[$i]);
  $tmp_en = explode(";", $zeile[$i]);

  $zeile[$i] = array();
  $zeile[$i]["datum"] = $tmp_en[0];
  $zeile[$i]["text1"] = $tmp_en[1];
  $zeile[$i]["text2"] = $tmp_en[2];
  $zeile[$i]["text3"] = $tmp_en[3];
  $zeile[$i]["zahl1"] = $tmp_en[4];
  $zeile[$i]["zahl2"] = $tmp_en[5];
  $zeile[$i]["zahl3"] = $tmp_en[6];
}

Nun hast du das mehrdimenstionale Array $zeile.
Du kannst mit $zeile[0] auf die Einträge aus Zeile 1 der Datei zugreifen.
Mit $zeile[0]["datum"] kannst du dann folglich auf den Datums-Eintrag aus Zeile 1 zugreifen usw.
 
Hallo ;)

ich habe es hinbekommen, dafür bekomme ich zwar keinen Open Source Coder Orden, aber es funktioniert:

PHP:
$datei = 'E:dietxt.txt';

$fp = fopen ($datei, "r");

while (!feof($fp))
      {

      $zeile  = fgets($fp,256);

list($datum, $text1, $text2, $text3, $zahl1, $zahl2, $zahl3) = split(';', $zeile, 7);

      $text3 = trim($text3);

      echo "<b>".$text3."</b><br>";

      }

Danke nochmal für eure Hilfe. :)

Nobse
 
Zurück