Datein aus einem Ordner ohne Endung ausgeben?
Tobias Kammerer
- php
Hi,
ich habe einen code, der alle Datein aus einem Ordner ausgibt:
<?
if($_GET["cat"] == "progs")
{
$handle=opendir('upload/programme');
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo "<font size="2" face="Tahoma"><a href="upload/programme/$file\n"class="dl">$file\n<br></a><hr color="#000000"></hr></font>";
}
}
closedir($handle);
}
mit nem if befehl, aber dieser Spielt keine Rolle. Wie kann ich den Code ändern, damit die Endunge, also .gif .jpg nicht angezeigt wird.
Und dann habe ich noch eine 2te Frage:
Gibt es die Möglichkeit, den Dateinamen zu ändern, den er ausgibt?
Danke für jedgliche Hilfe!
Hallo du da draußen,
<?
if($_GET["cat"] == "progs")
{
$handle=opendir('upload/programme');
while ($file = readdir ($handle)) {
if ($file != "." && $file != ".." && substr($file, -4) != ".gif" && substr($file, -4) != ".jpg") {
echo "<font size="2" face="Tahoma"><a href="upload/programme/$file\n"class="dl">$file\n<br></a><hr color="#000000"></hr></font>";
}
}
closedir($handle);
}
substr($file, -4) nimmt den Text 4 Zeichen vor Ende bis zum Ende (siehe http://php.net/substr). Nun wird überprüft, ob eben das ".gif" oder ".jpg" ist.
Man könnte es natürlich eleganter machen, was sich aber nur lohnte, wenn man eine ganze Liste an Endungen ausschließen will.
Gibt es die Möglichkeit, den Dateinamen zu ändern, den er ausgibt?
Wie genau möchtest du ihn denn ändern? Jedenfalls bist du ja nicht gezwungen, $file so auszugeben, wie es ist...
Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
Candid Dauth (Dogfish)
Hallo!
... Wie kann ich den Code ändern, damit die Endunge, also .gif .jpg nicht angezeigt wird.
Mit strrchr() kannst Du die letzte Position eines Zeichens innerhalb eines Strings ermitteln. Also in Deinem Fall den Punkt innerhalb des Dateinamens.
Und dann habe ich noch eine 2te Frage: Gibt es die Möglichkeit, den Dateinamen zu ändern, den er ausgibt?
http://at.php.net/manual/de/ref.filesystem.php
Beste Grüße
Viennamade
Huhu Tobias
Wie kann ich den Code ändern, damit die Endunge, also .gif .jpg nicht angezeigt wird.
Und dann habe ich noch eine 2te Frage:
Gibt es die Möglichkeit, den Dateinamen zu ändern, den er ausgibt?
Ob Endung oder Dateiname ist hier egal, es geht um Strings, also Zeichenketten.
Schau Dir mal die entsprechenden Funktionen dazu im Manual an.
http://www.php.net/manual/de/ref.strings.php
Viele Grüße
lulu
<?
if($_GET["cat"] == "progs")
{
$handle=opendir('upload/programme');
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
$dateiname = split("[.]",$file);
echo "<font size="2" face="Tahoma"><a href="upload/programme/".$file."\n"class="dl">".$dateiname[0]."\n<br></a><hr color="#000000"></hr></font>";
}
}
closedir($handle);
}
split trennt den teil des dateinamens vor dem "." und schreibt ihn in das array $dateiname[0].
den rest des dateinamens (also alles nach dem punkt) schreibt er in $dateiname[1].
ACHTUNG:
mit dieser variante darfst du keine Punkte mehr vor dem *.gif (oder *.jpg) in dem dateinamen haben!
sonst:
$file = "datei.name.gif"
$dateiname ("datei", "name", "gif")
richtig:
$file = "dateiname.gif"
$dateiname ("dateiname", "gif")