Suchen
 
Inside Forum
Nützliche Links
PHP News
 
phpforum.de UserMap
 
phpforum.de bei Facebook
 


phpforum.de bei Twitter
 
phpforum.de Tipp
PHP Test



werbung



Zurück   Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.07.2010, 22:16
KerS1989 KerS1989 ist offline
Neuer Besucher
 
Registriert seit: 18.06.2007
Beiträge: 29
Standard Die 3 neusten Bilder

Hey,
ich habe ein problem

und zwar möchte ich, dass die drei letzten bilderploads in einem ordner sortriert untereinander angezeigt werden...das uploadscript usw funktioniert alles.

habe auch schon das hier:

PHP Quellcode:
<?php
$bild_pfad ="images/";
$oeffne_pfad=opendir($bild_pfad);
$PicCODE= 1;
while ($find = readdir($oeffne_pfad))
{
if (preg_match("/\.(jpg|gif|png)$/i", $find))
{
$bild[$PicCODE] = "$bild_pfad/$find";
$PicCODE++;
if ( ++$piccount % 5 == 0 )
{
$hidden = $find;
}
}
}
$datei=$PHP_SELF;
$max= $piccount;
if (!isset($s)) { $s=1; }
$zurück = $s-1;
if ($zurück<=0) { $zurück=1; }
$vor = $s+1;
$vor2 = $s+2;
if ($vor>=$max) { $vor=$max; }
echo "<div align=center>";
$gallery_size = sizeof($bild);
if ($s<$gallery_size) {
if ($vor == $max) {
}
else {

}
}
echo "</div>";

  ?>


Doch wie mache ich es nun, dass er mir nur die letzetn drei in einer liste gibt?
Er muss sie ja nach dem datum sortieren, dazu habe ich auch schon was gefunden...aber kann das alles nicht mit dem code verbinden. Hat da einer ne Lösung?

Danek schonmal
Mit Zitat antworten
  #2  
Alt 20.07.2010, 23:29
Helmchen Helmchen ist gerade online
Vorbildlicher Helfer
 
Registriert seit: 24.11.2006
Beiträge: 1.821
Standard AW: Die 3 neusten Bilder

Wenn du weisst, wieviele Elemente in deiner Liste enthalten sind, kannst du doch ohne weiteres ein beliebiges Element ansprechen und in ein weiteres Array schreiben.
Das Einbetten in den bestehenden Code sollte nicht weiter schwer sein, wenn du die Liste aller Elemente durch die liste der letzten drei ersetzt.
PHP Quellcode:
function last_elements($arr, $count) {
    $elems = array();

    for ($i = 1; $i <= $count; ++$i) {
        $idx = count($arr) - $i;

        if ($idx < 0) {
            break;
        }

        $elems[] = $arr[$idx];
    }

    return $elems;
}
Mit Zitat antworten
  #3  
Alt 20.07.2010, 23:46
CQQL CQQL ist offline
Engagierter Besucher
 
Registriert seit: 03.05.2006
Beiträge: 698
Standard AW: Die 3 neusten Bilder

DOKU-VORLESE-SERVICE(TM)
int count(mixed var)
Zählt die Elemente einer Variable

DOKU-VORLESE-SERVICE(TM)
array array_slice(array array, int offset[, int length] )
Extrahiert einen Ausschnitt eines Arrays
Mit Zitat antworten
  #4  
Alt 21.07.2010, 02:39
combie combie ist gerade online
Forum-Mitarbeiter
 
Registriert seit: 29.07.2005
Beiträge: 29.825
Standard AW: Die 3 neusten Bilder

DOKU-VORLESE-SERVICE(TM)
array glob(string pattern[, int flags] )
Find pathnames matching a pattern
int filemtime(string filename)
Liefert Datum und Uhrzeit der letzten Dateiänderung
void usort(array array, callback cmp_function)
Sortiert ein Array nach Werten mittels einer benutzerdefinierten Vergleichsfunktion.
__________________
 
Wer in die falsche Richtung läuft, braucht sich nicht zu beeilen...
Keine Hilfe per PM
Mit Zitat antworten
  #5  
Alt 21.07.2010, 17:01
KerS1989 KerS1989 ist offline
Neuer Besucher
 
Registriert seit: 18.06.2007
Beiträge: 29
Standard AW: Die 3 neusten Bilder

Ich komme da einfach nicht drauf...wie soll ich das einbetten? Ich komme nicht weiter...entweder nen brett vorm kopf, oder ich weiß auch nicht...

diese ganzen "DOKU-VORLESE-SERVICE(TM)" helfen mir auch nicht weiter...
Mit Zitat antworten
  #6  
Alt 21.07.2010, 17:12
wassy92x wassy92x ist offline
Engagierter Besucher
 
Registriert seit: 30.04.2009
Ort: Göppingen
Beiträge: 291
Standard AW: Die 3 neusten Bilder

Na so schwierig ist z.B. der Vorschlag von Combie doch nicht.
Zuerst liest du die Datei-Pfade mit glob() in ein Array ein.
Liest mit filemtime() den UNIX-Timestamp der letzten änderung der Dateien ein und
sortierst dann mit usort anhand von dem timestamp das Array.

PHP Quellcode:
if ($zurück<=0) { $zurück=1; }

Übrigens, Umlaute in Variabelnamen sind keine gute Idee.
__________________
www.freundepunkt.de

Bitte beachte, dass ich des öfteren meine Beiträge nochmals editiere.
Es werden keine Fragen per PM beantwortet!

Geändert von wassy92x (21.07.2010 um 17:24 Uhr).
Mit Zitat antworten
  #7  
Alt 21.07.2010, 18:00
Nobody Nobody ist offline
Vorbildlicher Helfer
 
Registriert seit: 03.12.2002
Beiträge: 25.246
Standard AW: Die 3 neusten Bilder

Zitat:
Zitat von KerS1989 Beitrag anzeigen
diese ganzen "DOKU-VORLESE-SERVICE(TM)" helfen mir auch nicht weiter...
Warum nicht und was sollen wir sonst machen? Den fertigen Quellcode liefern?
__________________
Ich beantworte keine Fragen per PM, Mail, ICQ oder Telefon. Unformatiert geposteten Quellcode sehe ich mir nicht an.
PHP Tipps & Tricks
Mit Zitat antworten
  #8  
Alt 21.07.2010, 23:14
KerS1989 KerS1989 ist offline
Neuer Besucher
 
Registriert seit: 18.06.2007
Beiträge: 29
Standard AW: Die 3 neusten Bilder

ne..ich habe ja nen quellcode...ich checke es nur nicht, wie ich es umsetzten soll...bin auch nicht wirklich der programmierer...naja...dachte, dass man sowas auch fragen darf...

wenn einer möchte, kann er ja mal den anscheinend simplen abschnitt in meinen code einfügen-...wenn nicht, denn habe ich halt pech gehabt ...aufnem silbertablett gibt es nunmal nichts
Mit Zitat antworten
  #9  
Alt 22.07.2010, 22:06
KerS1989 KerS1989 ist offline
Neuer Besucher
 
Registriert seit: 18.06.2007
Beiträge: 29
Standard AW: Die 3 neusten Bilder

Hey,
also die sortierung habe ich hinbekommen...

so:
PHP Quellcode:
$base_path = getcwd(). '/images';

$filenames = array ();
if (is_object($dir = dir($base_path))) {
    while (is_string($entry = $dir->read())) {
        if ('..' === $entry || '.' === $entry) {
            continue;
        }  
        $file_path = $base_path . DIRECTORY_SEPARATOR . $entry;

        if (!is_file($file_path) || !preg_match('/\.jpe?g\z/', $entry)) {
            continue;
        }
        $filenames[$entry] = filemtime($file_path);
    }
    $dir->close();
}


arsort($filenames);

$base_url = 'http://www.**************';

  foreach ($filenames as $entry => $mtime) {
    $img_url = htmlspecialchars($base_url . rawurlencode($entry));
    printf(
        '<a href="%s" rel="lytebox[vacation]">'.
        '<img src="%s" width="200" border="0"/>'.
        '</a>' . "\r\n",
        $img_url,
        $img_url
    );
  }


Doch wie lass ich ihn jetzt nur drei bilder ausbegen?
Das es mit der folgenden funktion gehen muss, weiß ich schon.
PHP Quellcode:
for(i = 0; i < 3; i++)
{
}


Aber ich weiß nicht, wie ich die schleifen miteinander verbinden soll...kann man die verschachteln? Hatt ees probiert, da kam nur ein fehler... ich weiß nun wirklich nicht weiter...

habe das probiert:
PHP Quellcode:
$output = array_slice($filenames as $entry => $mtime, 0, 3);

geht natürlich auch nicht...weiß aber nicht, was ich an stelle von "$filenames as $entry => $mtime" einsetzten soll.

Geändert von KerS1989 (22.07.2010 um 22:16 Uhr). Grund: Probe
Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neusten Eintrag Makieren? PhiGi.de PHP 1 14.11.2006 00:02
fehler ! seit neusten wendtulin PHP 2 06.02.2006 09:40
Ausgabe von den Neusten einträgen... fabi65 PHP 2 08.12.2005 10:15
Neusten Bilder anzeigen Brus-xy PHP 3 03.09.2003 22:36
nur die 2 neusten Nobody PHP 2 01.01.1970 01:00


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:17 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC