for schleife

Scalé

Erfahrenes Mitglied
HI

ich hab folgendes denkproblem:
Ich will den code:
PHP:
if($temp1) {
	echo "<a href=\"" . $ordner . "/" . $temp1 . "\" target=\"_blank\">";
	echo "<img src=\"" . $ordner . "/" . $temp1 . "\">";
	echo "</a><br><br>";
}
von einer for schleife so oft generieren lassen bis eine bestimmte zahl ereicht ist.
nun soll die variable $temp1 bei jedem durchgang anders heisen.
also temp1, temp2, temp3,...

wie stell ich das genau an?
ich blick das nich ganz grad mit php nen php code zu generieren.

Oder habt ihr ne idee wie ich das geschickter anstell:

ich lese ein verzeichniss aus und geb alles aus was drinn ist.
dann kan man die gewünschten dateien anklicken und die sollen das dargestellt werden.
also wenn ein bild dann den image tag und beim rest nen link generieren.
Bis jetzt hab ich dat so gelöst, dass halt 20 mal des darsteht:

PHP:
if($temp1) {
	echo "<a href=\"" . $ordner . "/" . $temp1 . "\" target=\"_blank\">";
	echo "<img src=\"" . $ordner . "/" . $temp1 . "\">";
	echo "</a><br><br>";
}

nur halt dann fest und statt $temp1 immer aufsteigend.
Aber das ist bei grösseren Ordnern auch keine Lösung.

Ich geb also die ausgewählten dateien per formular weiter und die soll er mir darstellen.
also ein link is z.B.:
http://www.head-design.net/temp.php4?temp4=down.jpg&temp5=death17.jpg&ordner=temp
kann ich die variablen irgendwie abfangen und geziehlt ausgeben?

Naja ich hoffe ihr wisst was ich meine :)

Heady
 
versuchs doch mal mit arrays,

du packst einfach jeden inhalt in der in der temp variablen stehen soll in ein element des arrays. dann kannst du die einzelnen elemente über $temp[0] .. $temp[1] usw. ansprechen.

ausgeben kannst du sie dann mit der for-schleife

for ($x=0;$x<count($temp);$x++)
{
...
echo temp[$x];
...
}

füllen kannst du sie genauso einfach per for schleife alle werte füllen.

temp[$x]=...;

hoffe das hilft dir etwas.

mfg
evoc
 
du packst einfach jeden inhalt in der in der temp variablen stehen soll in ein element des arrays.

Sorry scheinbar hab ich grade voll den blackout.

Wie meinst du das?
wie soll ich den inhalt der in der temp variable steht in nen array packen?
also so wie ich es in meinem jetzigen zustand (den ich bis eben für normal hielt :)) gemacht habe gehts net:

PHP:
$filecount = 0;
 $directory = $ordner . "/";
 $handle = opendir($directory);
 while ($file = readdir ($handle)) {
 if ($file != "." && $file != "..") {
  $temp = array($filecount);
  $filecount++;
 }
}
// $temp = array($filecount);
for ($x = 1; $x = $filecount; $x++){
 // $temppic = $temp . $x;
 if ($temp[$x]){
  echo "<a href=\"" . $ordner . "/" . $temp[$x] . "\" target=\"_blank\">";
  echo "<img src=\"" . $ordner . "/" . $temp[$x] . "\">";
  echo "</a><br><br>";
 }
}
 
$temp = array($filecount);

Lass das weg und ersetze es durch

PHP:
$temp[$filecount]=$file;

dann hast du jeden dateinamen in dem array stehen.

die bedingung für die for schleife gibst du dann so an:

PHP:
for($x=0;$x<count($temp);$x++) { .. }

count zählt die elemente des arrays.

----------------

mir fällt gerade was auf : du liest alle dateien ja schon mit einer schleife aus dem aktuellen directory aus. du kannst das auslesen auch gleich mit dem ausgeben kombinieren. so erstparst du dir das zwischenspeichern in variablen. einfach die variable $file ausgeben.

mfg evoc
 
Ja ich gebe den gesammten inhalt schon aus.

aber ich kann ja dann auswählen per select box, welche files ich sehen will.
auf submit sollen die dargestellt werden.

aber ich muss ja irgendwie rausbekommen, welche variablen übegeben wurden und welchen dateitypen die haben.
bis jetzt hatte ich das so gemacht, dass ich 20 mal den if block hatte jedes mal mit einem temp höher.
aber wenn mal irgendwann was höher 20 angezeigt werden soll in grösseren ordnern z.B. reicht das nicht aus.
 
hi ich nochmal.

hab das Problem anders gelöst. :)

für alle die es interesiert:
ich zieh mir die entsprechenden sachen direkt aus der url
PHP:
$GetVar = explode("&",$QUERY_STRING); // packe das, was in der url rechts vom ? steht in einen array trennpunkt is das &
$zaehler = sizeof($GetVar);     // zähle die anzahl der enthaltenen datensätze
for ($i=0;$i<$zaehler;$i++){
 $filename = explode("=",$GetVar[$i]);  // Packe alles in einen array, trennzeichen ist, dass =
 if ($filename[1] != $ordner) {   // wenn variable (rechts vom =) nicht ordner ist
  $ext = explode(".",$filename[1]);  // Packe alles in einen array, trennzeichen ist der punkt (um die endung herauszubekommen)
  if ($ext[1] == "jpg" or $ext[1] == "gif"){ // wenn endung jpg oder gif ist gib den image tag aus
   echo $filename[1] . "<br><br>";
   echo "<a href=\"" . $ordner . "/" . $filename[1] . "\" target=\"_blank\">";
   echo "<img src=\"" . $ordner . "/" . $filename[1] . "\">";
   echo "</a><br><br><br>";
  } else { // ansonsten gib nen normalen link aus
   echo "<a href=\"" . $ordner . "/" . $filename[1] . "\" target=\"_blank\">";
   echo "<b>" . $filename[1] . "</b>";
   echo "</a><br><br><br>";
  }
 }
}

Thx an alle.

Heady
 

Neue Beiträge

Zurück