HTML/PHP Lokale dateisuche mit Platzhalter
hachigatsu 14.03.2016 - 15:24 1768 8
Guest
Deleted User
|
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?
|
mat
AdministratorLegends never die
|
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() $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);
}
Ja, das ist einfach nur ein angepasstes Beispiel aus der PHP-Doku.
|
Guest
Deleted User
|
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.
|
mat
AdministratorLegends never die
|
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.
|
kleinerChemiker
Here to stay
|
warum fügst du nicht einfach vorne ein "img_2016" hinzu?
|
Umlüx
Huge Metal Fan
|
vermutlich will er ein "not found" irgendwie formschön abfangen und nicht bloß ein 404 ausgeben?
|
meepmeep
Here to stay
|
ein vorschlag in html/js <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')">
Bearbeitet von meepmeep am 14.03.2016, 17:56
|
Gegi
Here to stay
|
vermutlich will er ein "not found" irgendwie formschön abfangen und nicht bloß ein 404 ausgeben? 404 kann man genauso auf "schön" machen...
|
pinkey
Here to stay
|
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?
|