PHP :: Aufgabe #196 :: Lösung #1
2 Lösungen

#196
Erzeugung einer passenden .html Datei für Dateien in einem Ordner
Fortgeschrittener - PHP
von Holzi
- 24.09.2018 um 13:22 Uhr
In dieser Aufgabe wollen wir automatisiert eine HTML-Datei erzeugen, mit der Medien angezeigt werden können. Dies machen wir, da unser Kunde Video und Bilddateien in einem Ordner ablegen möchte und wir diese anzeigen müssen. Eine einfache Anzeige der Bild/Video-Datei ist nicht möglich, da wir mit JavaScript die Dauer des Videos übermitteln wollen (Das ist aber nicht Bestandteil der eigentlichen Aufgabe und dient nur zur Erklärung).
Wir haben also eine Ordnerstruktur, in der der Kunde einen Ordner erstellt und eine Bild- oder Videodatei einfügt.
Wir erzeugen in diesen Ordnern eine index.html Datei:
Diese index.html Datei soll das Medium als Vollbild anzeigen (und das Video soll automatisch abgespielt werden).
Zusatzaufgabe: Die erstellten index.html Dateien sollen in einer Dauerschleife abwechselnd angezeigt werden. Dabei soll jede Bilddatei 15 Sekunden lang angezeigt werden, das Video exakt so lange, bis es zu Ende ist.
Wir haben also eine Ordnerstruktur, in der der Kunde einen Ordner erstellt und eine Bild- oder Videodatei einfügt.
ordner1 → image.jpg
ordner2 → video.mp4
Wir erzeugen in diesen Ordnern eine index.html Datei:
ordner1 → image.jpg, index.html
ordner2 → video.mp4, index.html
Diese index.html Datei soll das Medium als Vollbild anzeigen (und das Video soll automatisch abgespielt werden).
Zusatzaufgabe: Die erstellten index.html Dateien sollen in einer Dauerschleife abwechselnd angezeigt werden. Dabei soll jede Bilddatei 15 Sekunden lang angezeigt werden, das Video exakt so lange, bis es zu Ende ist.
#1

von syneex (2670 Punkte)
- 04.10.2018 um 15:09 Uhr

<!DOCTYPE html> <html> <head> <title>Autoplay</title> </head> <body> <p>Unterstützte Dateiformate: MP4, JPG, PNG</p> <form method="POST"> Bitte hier Pfad zum Bildordner eingeben:<br> <input type="text" name="imagepath" style="width: 400px;"><br> Bitte hier Pfad zum Videoordner eingeben:<br> <input type="text" name="videopath" style="width: 400px;"><br><br> <input type="submit" name=""> </form> </body> </html>

<?php if(isset($_POST['imagepath']) && isset($_POST['videopath'])) { $imagePath = $_POST['imagepath']; $videoPath = $_POST['videopath']; //Check Picture checkFileEnding($imagePath, "image"); checkFileEnding($videoPath, "video"); createImageHtmlFile($imagePath); createVideoHtmlFile($videoPath); } function checkFileEnding($FilePath, $type) { $erg = false; $FilePathParts = pathinfo($FilePath); if(is_file($FilePath)) { if($type == "image") { if($FilePathParts['extension'] == "jpg" || $FilePathParts['extension'] == "png") { $erg = true; } else { echo "<br>Imagefile is no valid type!"; $erg = false; } } if($type == "video") { if($FilePathParts['extension'] == "mp4") { $erg = true; } else { echo "<br>Videofile is no valid type!"; $erg = false; } } } else { echo "<br>File ist not a File! Check Path!"; $erg = false; } return $erg; } function getFilename($path) { $FilePathParts = pathinfo($path); $erg = $FilePathParts['basename']; return $erg; } function getFiledir($path) { $FilePathParts = pathinfo($path); $erg = $FilePathParts['dirname']; return $erg; } function createImageHtmlFile($imgUrl) { $path = getFiledir($imgUrl) . "\index.html"; $filename = getFilename($imgUrl); $handle = fopen($path, "w"); fwrite($handle, "<!DOCTYPE html> <html> <head> <title></title> </head> <body> <img src=\"" . (string)$filename . "\" style=\"width:100%; height: auto;\"> </body> <style> body{margin: 0;} </style> </html>"); fclose($handle); } function createVideoHtmlFile($mp4Url) { $path = getFiledir($mp4Url) . "\index.html"; $filename = getFilename($mp4Url); $handle = fopen($path, "w"); fwrite($handle, "<!DOCTYPE html> <html> <head> <title></title> </head> <body> <video style=\"width:100%; height: auto;\"controls autoplay><source src=\"" . (string)$filename . "\" type=\"video/mp4\"></video> </body> <style> body{margin: 0;} </style> </html>"); fclose($handle); } ?>
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1