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, 08:42
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 14
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 10:31 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 29-03-2015, 10:30
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 14
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, 12: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, 13:55
fapl
 Registrierter Benutzer
Links : Onlinestatus : fapl ist offline
Registriert seit: Mar 2015
Beiträge: 14
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 10:36
Größe ändern des bildes = schwarzes Bild J4CKY PHP Developer Forum 2 01-12-2006 15:06
thumbnails generieren/ ausgabe des bildes unerwartet als bitmap/speichern des bildes sanktusm PHP Developer Forum 5 17-11-2006 17:06
Fenster an Größe des Bildes anpassen pat270881 HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 17 17-03-2006 17:21
Window Open mit Größe des Bildes MaximusMR HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 17 28-06-2004 14: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

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 12:23 Uhr.