php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > Apps und PHP Script Gesuche
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


Apps und PHP Script Gesuche Hier könnt ihr nach PHP Skripten und Programmen fragen. Postet eure Wünsche

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 29-03-2015, 09:42
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 12
fapl befindet sich auf einem aufstrebenden Ast
Standard Script für das anzeigen des letzten Bildes gesucht

Hallo php-Fachleute,

ich bin auf der Suche nach einem Script was ein Verzeichis ausliest und mir das zuletzt hochgeladene Bild anzeigt.

Es geht um eine Webcam die alle 10 Minuten Bilder in das Verzeichnis cam/images hochläd. Das Script soll im Ordner /cam liegen und mir jetzt (einfach ) das zuletzt hochgeladene (also das aktuelle) Webcambild aus dem Ordner /images anzeigen. Die Bilder heißen z.B. webcam15.12.31_14.31.26.11.jpg (webcamJahr.Monat.Tag_Stunde.Minute.Sekunde.Variable.jpg).
Weil sich diese Variable leider ändert, müsste man das Änderungs- bzw. Erstelldatum einlesen, mit dem Dateinamen kann man dann bestimmt nichts anfangen(?).

In der Suche habe ich nur dieses gefunden, aber das triffts ja nur zum Teil. Der Thread ist ja auch schon 13 Jahre alt...

Ich würde mich über den php-Code freuen.


Schonmal vielen Dank fürs Lesen und viele Grüße

Frank

Geändert von fapl (29-03-2015 um 11:31 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 29-03-2015, 11:30
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 12
fapl befindet sich auf einem aufstrebenden Ast
Standard

Nach lager Suche habe ich ein script gefunden was das macht was es soll:

PHP-Code:
<?php 
$folder 
"images/"
$dir opendir($folder); 
$allowed = array('jpg'); 
while (
$file readdir($dir)) 

if ((
$file!= ".") && ($file!= "..")) 

if (
in_array(substr($file, -3), $allowed)) 

$filemtime=filemtime("$folder/$file"); 
$files[] = "$filemtime||$file"



closedir($dir); 
$fcount count($files); 
if (
$fcount!= 0

rsort($files); 
for(
$i=0$i<1$i++) 

$lastimage explode('||'$files[$i]); 
$show_file $lastimage[1]; 
$imagedata=@getimagesize("$folder/$lastimage"); 
echo
"<img src=\"$folder$show_file\">\n"


?>
Ob das jetzt das Optimale ist weiss ich nicht, jedenfalls zeigt es das zuletzt hochgeladene Bild aus dem Ordner /images an.

Vielleicht kann ja jemand etwas damit anfangen...

MfG

Frank
Mit Zitat antworten
  #3 (permalink)  
Alt 29-03-2015, 13:53
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von fapl Beitrag anzeigen
Nach lager Suche habe ich ein script gefunden was das macht was es soll:... Ob das jetzt das Optimale ist weiss ich nicht, jedenfalls zeigt es das zuletzt hochgeladene Bild aus dem Ordner /images an.
Da du eh das gesamte Verzeichnis durchläufst, kannst du dir das Sortieren nach dem filemtime-Wert sparen. Je mehr Bilder im Verzeichnis liegen, umso mehr Speicher und Zeit braucht deine Lösung. Und das Zusammenpappen von Dateiname und Timestamp mit anschließendem Trennen per explode() ist auch nicht wirklich sinnvoll. Man kann zwei Variablen vorhalten oder beide Sachen in einem Array oder Objekt speichern.

Hier ein Vorschlag. Das ist das übliche Vorgehen beim Einlesen eines Verzeichnisses per opendir()+readdir()[0] abgewandelt für dein Suchkriterium:

PHP-Code:
function get_most_recent_file(
    
$dirpath '/images'// directory path to scan
    
$pcre '/\.jpg\z/' // file basenames to accept
) {
    
$pwd getcwd();
    if (!
chdir($dirpath)) {
        return 
null;
    }
    if (!
is_resource($dir opendir($dirpath))) {
        return 
null;
    }

    for (
        
$most_recent_mtime = -PHP_INT_MAX$most_recent_filename null;
        
is_string($entry readdir());
    ) {
        if (
is_dir($entry)) {
            continue; 
// includes '.' and '..'
        
}
        
// only files here

        
if (!preg_match($pcre$entry)) {
            continue;
        }
        
// only filenames ending with ".jpg" here

        
$filemtime filemtime($entry);
        if (
$filemtime $most_recent_mtime) {
            
$most_recent_mtime $filemtime// file modification time
            
$most_recent_filename $entry// file basename
        
}
    }

    
closedir($dir);
    
chdir($pwd);
    return 
$most_recent_filename// null if no suitable file found

Es kommt (im Erfolgsfall) der "Basename" zurück, also ein Dateiname ohne Verzeichnispfad davor. Da du das Ergebnis in HTML einbaust, könnte ich mir vorstellen, dass der Pfad im Dateisystem ein anderer ist als der den du auf deiner Website angibst. Den musst du halt noch vor den Dateinamen pappen, nachdem du dir sicher bist, dass das Verzeichnis nicht leer war (das soll manchmal vorkommen).

--
[0] Es gibt in PHP noch andere: DirectoryIteratoren, scandir(), glob() usw. ...
Mit Zitat antworten
  #4 (permalink)  
Alt 29-03-2015, 14:55
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 12
fapl befindet sich auf einem aufstrebenden Ast
Standard

@fireweasel: Vielen dank für deine optimierte Version!

Das dein Script schneller und schlanker ist, kommt der Sache sehr entgegen. In dem Ordner liegen bis zu 3000 Bilder...

Leider bekomme ich das Script nicht ans laufen. Die html-Seite in der das Script inkludiert werden soll liegt im Verzeichnis /cam. Die Bilder liegen in dem Unterverzeichnis /cam/images.

Zitat:
Es kommt (im Erfolgsfall) der "Basename" zurück, also ein Dateiname ohne Verzeichnispfad davor. Da du das Ergebnis in HTML einbaust, könnte ich mir vorstellen, dass der Pfad im Dateisystem ein anderer ist als der den du auf deiner Website angibst. Den musst du halt noch vor den Dateinamen pappen, nachdem du dir sicher bist, dass das Verzeichnis nicht leer war (das soll manchmal vorkommen).
Was muss ich jetzt noch wo "vorpappen"?

Danke nochmal und Gruß

Frank
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie kann ich das start bzw. end Datum des letzten Monats rausfinden? BananaJo PHP Developer Forum 3 12-02-2009 11:36
Größe ändern des bildes = schwarzes Bild J4CKY PHP Developer Forum 2 01-12-2006 16:06
thumbnails generieren/ ausgabe des bildes unerwartet als bitmap/speichern des bildes sanktusm PHP Developer Forum 5 17-11-2006 18:06
Fenster an Größe des Bildes anpassen pat270881 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 17 17-03-2006 18:21
Window Open mit Größe des Bildes MaximusMR HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 17 28-06-2004 15:19

Themen-Optionen
Thema bewerten
Thema bewerten:

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.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

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