URL: https://www.overclockers.at/coding-stuff/html-php-lokale-dateisuche-mit-platzhalter_245731/page_1 - zur Vollversion wechseln!
Brauche folgendes...
Lokaler webserver, Apache + PHP
Im htdocs werden Bilder gespeichert, diese tragen folgende namen
zb img_2016172113.jpg, img_2016172346.jpg usw...
Ich benötigte eine Seite (html oder PHP) mit Suchmaske die mir nach der Eingabe von zb "172113" (es müssen 6 zeichen eingegeben werden) einfach das entsprechende bild öffnet.
Perfekt wäre es natürlich das Bild in einer Lightbox zu öffnen, aber das ist nur kosmetik... Es reicht wenn das jpg-file direkt aufgerufen wird.
Ohne DB, so einfach wie möglich. Die Clients sind Handys.
kann ma wer helfen?
Wenn du keine Datenbank willst, dann ist es die einfachste Art und Weise, alle Dateien in dem Suchverzeichnis einzulesen und durchzugehen. Sollte es zu viel sein, dann wirst du entweder per File oder besser per Caching-Service (zB memcached) eine Liste aller Dateinamen zwischenspeichern müssen.
Aber mal eines nach dem anderen. Du brauchst prinzipiell einfach nur ein readdir() und ein strpos()
Code: PHP$keyword = '123456'; $rootpath = $_SERVER['DOCUMENT_ROOT']; if ($handle = opendir($rootpath)) { while (false !== ($entry = readdir($handle))) { if (stripos($entry,$keyword) !== false) { echo "keyword found in file: <a href="/$entry" target="_blank">$entry</a><br>"; } } closedir($handle); }
Danke, werds mir abends daheim mal ansehen..
Fragt sich was zu viel is
es wird in der regel um ~400 Files gehen. Mehr nur in Ausnahmefällen.
Kommt auch auf den Traffic und das OS inklusive File-System an. Machs mal so und bei Bedarf wirst du eben ein Caching einbauen müssen.
warum fügst du nicht einfach vorne ein "img_2016" hinzu?
vermutlich will er ein "not found" irgendwie formschön abfangen und nicht bloß ein 404 ausgeben?
ein vorschlag in html/js
Code: HTML<script> function show() { var query = document.getElementById('imgQuery').value changeImageSrc('img_2016'+query+'.jpg') } function changeImageSrc(src) { document.getElementById('image').src = src } </script> <form onsubmit="show(); return false;"> <input id="imgQuery" type="text" pattern="\\d{6}" /> <input type="submit" value="show" /> </form> <img id="image" src="default.jpg" onerror="/* redirect, alert, do something */ changeImageSrc('404.jpg')">
Zitat von Umlüxvermutlich will er ein "not found" irgendwie formschön abfangen und nicht bloß ein 404 ausgeben?
soll jeder dann eine fortlaufende nummer und alle bilder sehen können oder willst du das noch etwas verstecken?
d.h. wenn ich weiß das ich z.b. 2016<zahl mit 6 ziffern>.jpg aufrufen kann, ist es ok, dass ich auch 2016<zahl mit 6 ziffern +1>.jpg aufrufen darf oder is das egal bzw. schon mit den 6 ziffern berücksichtigt?
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025