Leerzeichen durch Zeilenumbruch bei file() Befehl

Dick Starbuck

Erfahrenes Mitglied
Hallo..

Ich hab ein kleines Problem mit dem file() Befehl:

Mit file() kann man eine komplette Datei (filename) zeilenweise in ein Array
einlesen. Das Zeilenumbruchzeichen am Ende jeder Zeile wird als letztes Zeichen
n das entsprechende Array-Element übernommen.

Und genau dieser Zeilenumbruch wird mir wohl zum Verhängniss. Hier mal zum Prinzip meines Vorhabens:

PHP:
<?php 

$counter=fopen("members/counter.php","r");
$anzahl=fgets($counter,10);

for($i=0 ;$i < $anzahl; $i++) {

$datei=("members/list.php");

$array = file($datei);

$name = ("members/".$array[$i].".php");

echo $name;
}

fclose($counter);
fclose($datei);

?>

Der Inhalt der list.php lautet z.B. wie folgt:

User1
User2
User3

Am Ende der Zeilen bedinden sich KEINE Leerzeichen!

Die Ausgabe ist jetzt jedoch diese:

members/User1 .php
members/User2 .php
members/User3 .php

Auch folgender Zusatz führt zu keinem Ergebnis:

PHP:
$name = eregi_replace(" .php", ".php", $name);

Wenn ich generell die Leerzeichen " " durch nichts "" ersetze, wird der Teil vorm .php auch nicht beeinträchtig.

Weiß vielleicht jemand eine Lösung um dieses Zeichen für den Zeilenumbruch irgendwie zu übergehen oder es nicht mit aus den einzelnen Array-Feldern auszulesen?

Danke schonmal für eure Hilfe!

Gruß, Dick Starbuck
 
als kommt auch drauf an wie du die datei feschrieben hast:

zeilenende ist \n

$name = str_replace("\n","",$name);

sollte es tun

wenn du die datei mit win_editor oder ähnliches schreibst die hauen noch ein \r rein :-(
 
Also die Bearbeitung dieser Datei findet ausschließlich durch das Registrieren von Usern per Formular statt. Der Eingriff sieht dabei folgendermaßen aus:

PHP:
$list = fopen("members/list.php","a+");
fputs($list,$name);
fclose($list);

Edit:
Das mit \n hat tasächlich geklappt. Vielen Dank!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück