CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
16.01.2006, 16:02:34
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 24
|
|
Datei-Verzeichnis auslesen
hiho,
gibt es eine Funktion, die es mir erlaubt, den Inhalt eines Datei-Verzeichnisses ganz einfach in Textform auszulesen, bestenfalls Dateiname, Grösse, Erstellungsdatum?
So in etwa:
bild.gif 450Kb 15.01.2005
Besten Dank, mil
|
16.01.2006, 16:18:53
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Datei-Verzeichnis auslesen
|
16.01.2006, 18:58:47
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 24
|
|
AW: Datei-Verzeichnis auslesen / Do-While Schleife ergänzen
Ok, danke habs hingekriegt mit glob(), jetzt sieht es so aus:
function PicturePreview($dir){
if(!$dir){$dir = '.';}
foreach(glob("$dir/*") as $item){$sort[]= end(explode('/',$item));}
$killit = array('*.html', '*.php', '*.db', '*.css');
$killcounter = 0;
foreach($sort as $sorteditem){
foreach($killit as $killcheck){
if(strtolower($sorteditem) == strtolower($killcheck))
{unset($sort[$killcounter]);}
}$killcounter++;}
if($sort){natsort($sort);}
foreach($sort as $item){$return[]= $item;}
if(!$return){return array();}
return $return;
}
//Preview pictures (*.gif, *.jpg)
echo '<table width="600" border="0" cellspacing="0" cellpadding="0"><tr>',"\n";
$folder = '../images/content/screenshots/UltimateSpiderman/';
foreach(PicturePreview($folder) as $item){
echo '<td><img src="'.$folder.'/'.$item.'"><br>'.$item.'</td>',"\n";}
echo '</tr></table>';
Es wird eine Tabelle ausgegeben (3 Spalten), die die entsprechenden Bild-Dateien anzeigt.
Jetzt würde ich das gerne um eine do/while Schleife ergänzen, so dass so viele Tabellenzeilen (je mit 3 Spalten) ausgegeben werden, wie sich Dateien im Ordner befinden. Bestenfalls sieht die Ausgabe am Ende so aus:
<table>
<tr>
<td><img src="../images/bild_1.gif"></td>
<td><img src="../images/bild_2.gif"></td>
<td><img src="../images/bild_3.gif"></td>
</tr>
<tr>
<td><img src="../images/bild_4.gif"></td>
<td><img src="../images/bild_5.gif"></td>
<td><img src="../images/bild_6.gif"></td>
</tr>
<tr>
<td><img src="../images/bild_7.gif"></td>
<td></td>
<td></td>
</tr>
</table>
Habt ihr da noch einmal eine Idee ?
Besten Gruss, Marc
|
16.01.2006, 20:31:22
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 24
|
|
AW: Datei-Verzeichnis auslesen
okay, soweit hab ichs jetzt, einziges Problem - er zeigt mir jedes Bild 3x an:
111
222
333
So sieht mein Code jetzt aus:
//Show files (*.gif, *.jpg)
echo '<table width="600" border="0" cellspacing="0" cellpadding="0">',"\n";
$folder = '../images/content/screenshots/UltimateSpiderman/';
foreach(PicturePreview($folder) as $item) {
$z=0;
for($i=0;$i<3;$i++) {
echo ($z%3==0) ? "<tr>\n" : "";
echo '<td><img src="'.$folder.'/'.$item.'"></td>',"\n";
$z++;
echo ($z%3==0) ? "</tr>\n" : "";
}
echo ($z%3!=0) ? "</tr>\n" : "";
}
echo '</table>';
Vielleicht hat ja noch einer einen Tip für mich, thx, mil
|
16.01.2006, 21:19:21
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Datei-Verzeichnis auslesen
Deine Funktion PicturePreview() liefert ja anscheinend ein Array mit den Dateinamen der Bilder aus einem Verzeichnis. Zunächst durchläufst du dieses Array mit der foreach-Schleife. Wenn du aber bei jedem Durchlauf auch noch eine for-Schleife drei Mal durchlaufen lässt, ändert sich zwar nicht der Dateiname bei diesen Durchläufen, die Datei wird aber trotzdem angezeigt. Statt die for-Schleife zu verwenden, kannst du besser vor der foreach-Schleife die Variable $i mit dem Wert 0 initialisieren und dann bei jedem Durchlauf der foreach-Schleife inkrementieren.
|
18.01.2006, 17:46:17
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 24
|
|
AW: Datei-Verzeichnis auslesen
Geschafft! Herzlichen Dank für Eure Hilfe.
Da das ja ein beliebtes Problem zu sein scheint, hier noch einmal das vollständige Script, so wie es bei mir jetzt funktioniert:
Dateiverzeichnis auslesen:
PHP-Code:
<?php
function PicturePreview($dir){
if(!$dir){$dir = '.';}
foreach(glob("$dir/*") as $item){$sort[]= end(explode('/',$item));}
$killit = array('*.html', '*.php', '*.db', '*.css');
$killcounter = 0;
foreach($sort as $sorteditem){
foreach($killit as $killcheck){
if(strtolower($sorteditem) == strtolower($killcheck))
{unset($sort[$killcounter]);}
}$killcounter++;}
if($sort){natsort($sort);}
foreach($sort as $item){$return[]= $item;}
if(!$return){return array();}
return $return;
}
?>
Tabelle ausgeben (3 Bilder pro Spalte):
PHP-Code:
<?php
// Populate 3 pictures in a row than jump to new row
echo '<table width="581" border="0" cellspacing="0" cellpadding="0">',"\n";
$folder = '../images/content/screenshots/KingKong-TheMovie/';
$z=0;
foreach(PicturePreview($folder) as $item) {
//echo $z%3;
if ($z%3==0) echo '<tr>';
if ($z%3!=3) echo '<td><img src="'.$folder.'/'.$item.'"></td>';
if ($z%3==2) echo '</tr>';
if ($z%3==3) echo '<br />',"\n";
$z++;
}
echo '</table>';
?>
Die Ausgabe entspricht:
123
456
7
Thx, mil
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:37:01 Uhr.
|