str an str hängen in einer while

Brothers

Mitglied
nabend liebe phpler

- ich lese aus einem ordner dateien aus
- kürze die dateiendungen weg
- schreibe <option> davor
- schreibe </option> dahinter
- und füge alle ausgelesenen dateien zu einem string zusammen

hab das ganze in sämmtlich variationen probiert er gibt immer nur die letzte datei aus

PHP:
$verz=opendir('language');
$zaehler = 0;
while($file = readdir($verz)){
	$file_final = substr($file, 0, -4);
	if(zaehler < 1){
		$sprache_ausg = "<option>$file_final</option>";
		//echo "$sprache_ausg";
	}
	if(zaehler > 0){
		$sprache_ausg = "$sprache_ausg$file_final";
	}
	$zaehler = $zaehler + 1;
}
closedir($verz);
echo $sprache_ausg;

wo liegt der fehler?

oder hat jemand eine andere möglichkeit alles variabel aneinander zu hängen?
 
Da sind einige Fehler. Zumindest in der Rechtschreibung ;)

In dem Algorithmus machst du aber:
PHP:
if(zaehler < 1){
        $sprache_ausg = "<option>$file_final</option>";
    }

Da sind nur 2 Ding merkwürdig.

Was heißt das "zaehler" da? Wurde das als Konstante deklariert, weswegen du die Dollar-Zeichen weglässt?

Und wie war das früher in Mathe?
x = 1;
x = 2;
Kommt da x = 2 raus? Jop!
Um den String anzuhängen fehlt dir also etwas.
$x = "abc";
$x = "def";
Ergibt: $x = "def;
Aber $x = "abc"; und $x .= "def"; ergibt "abcdef".

Schonmal ein Tutorial gemacht? Wenn ja, welches?
 
Wahrscheinlich nicht.

Nun ja ob das mit dem substr() immer klappt mag ich mal bezweifeln.
Und was Zodiac sagen wollte, du kannst strings mit einem Punkt verküpfen.
Ich würde allerding die gefundenen Datei in einem Array speichern.
Du solltest vielleicht auch eine Prüfung auf Ordner einbauen.

Wenn du das array hast, brauchst du die Werte nur noch mit implode() zusammenführen.
 
PHP:
$verz=opendir('language');
$zaehler = 0;
while($file = readdir($verz)){
	$file_final = substr($file, 0, -4);
	if($zaehler == 2){
		$sprache_ausg = "<option>$file_final</option>";
		//echo "<h1>$sprache_ausg</h1>";
	}
	if($zaehler >= 3){
		$sprache_ausg = "$sprache_ausg<option>$file_final</option>";
	}
	$zaehler++;
}
closedir($verz);
echo $sprache_ausg;

keine ahnung was du mit dem mathe wolltest aber die beiden $ waren das problem und nicht die logik/rechnung

trotzdem danke
 
Zuletzt bearbeitet:
mit der mathe meinte er das die die str addieren must mit einem "Punkt"

so solte das klapen:

PHP:
$verz=opendir('language');
$zaehler = 0;
while($file = readdir($verz)){
    $file_final = substr($file, 0, -4);
    if($zaehler == 2){
        $sprache_ausg .= "<option>$file_final</option>";
        //echo "<h1>$sprache_ausg</h1>";
    }
    if($zaehler >= 3){
        $sprache_ausg .= "<option>$file_final</option>";
    }
    $zaehler++;
}
closedir($verz);
echo $sprache_ausg;
 
Zurück