PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Auswahl des immer aktuellsten (Webcam) Fotos (https://www.php-resource.de/forum/php-developer-forum/106454-auswahl-des-immer-aktuellsten-webcam-fotos.html)

mario25829 05-02-2019 14:44

Auswahl des immer aktuellsten (Webcam) Fotos
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bin mir sicher ihr könnt mir hier helfen! :)

Betreibe just for fun eine Webcam und zeige immer das aktuellste Bild, natürlich überlagert mit meinem Logo auf der Webseite an.

Irgendwie ist in dem Script noch eine Unreinheit, da ab und zu ein falsches Bild gewählt wird. (sieht man wenn die Sonne beim gefolgten Bild wieder zurück geht oder wieder einmal ein Bild von der Nacht angezeigt wird).

Die Fotos werden alle 10 Minuten via ftp auf den Server hochgeladen (siehe Screenshot).

Danach sollten Fotos die ein gewisses alter überschritten haben gelöscht werden, da das script sonst ewig läuft und die Seite bremsen.
(momentan werden diese noch manuell gelöscht).

Hier das Script:
get_header();

global $shopera_site_width;

use WeatherStation\Data\Output;
use WeatherStation\SDK\Clientraw\Plugin\StationCollector;

?>

<div class="content_section inner_page wettercam_page">
<?php while ( have_posts() ) : the_post(); ?>
<header class="h1">
<h1><?php echo the_title(); ?></h1>
<hr />
</header>
<div class="container content_inner">

<?php
function getLatestImage() {
ini_set("gd.jpeg_ignore_warning", 1);
$folderName = 'wetter/incomming/';
$imageEnding = '.jpg';
$newest_mtime = 0;
$base_url = ABSPATH.$folderName;
$file_ending = $imageEnding;
$show_file_old = 'images/folio/no-image.jpg';
$show_file = 'images/folio/no-image.jpg';
if ($handle = opendir($base_url)) {
while (false !== ($latestFile = readdir($handle))) {
if (($latestFile != '.') && ($latestFile != '..') && ($latestFile != '.htaccess') && (strpos($latestFile, $file_ending))) {
$mtime = filemtime("$base_url/$latestFile");
if ($mtime > $newest_mtime) {
$newest_mtime = $mtime;
$show_file_old = $show_file;
$show_file = "$latestFile";
}
}
}
}
$imageUrl = ABSPATH ."/cam_mit_logo.jpg";
$logoUrl = ABSPATH . "/wetter/logo_klein.png";

$im = @imagecreatefromjpeg("$base_url/$show_file_old");

$cam_image = imagecreatefrompng($logoUrl);
$xLogo = imagesx($cam_image);
$yLogo = imagesy($cam_image);

$xCam = imagesx($im);
$yCam = imagesy($im);


imagecopy($im, $cam_image, $xCam-$xLogo-50, $yCam-$yLogo-50, 0, 0, $xLogo, $yLogo);

imagedestroy($cam_image);
imagejpeg($im, $imageUrl);

imagedestroy($im);

return "/cam_mit_logo.jpg";
}

echo '<img src="'.getLatestImage().'" alt="Latest from the web" class="wettercam_image"></img>';
?>
<?php the_content(); ?>

</div>
<?php endwhile; ?>

</div><!-- .content_section -->


<?php
get_footer();

Vielen Dank im Voraus!

bandit600 06-02-2019 08:18

Ungetestet:
PHP-Code:

<?php
    $tmp 
glob(".jpg")
    
    
$files = array();
    
    foreach(
$tmp as $file)
       
$files[filectime($file)] = $file;
       
    
ksort($filesSORT_NUMERIC);
    
    
$latest array_shift($files);
?>



Alle Zeitangaben in WEZ +2. Es ist jetzt 14:56 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG