HTML/PHP Lokale dateisuche mit Platzhalter

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/html-php-lokale-dateisuche-mit-platzhalter_245731/page_1 - zur Vollversion wechseln!


schrieb am 14.03.2016 um 15:24

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 schrieb am 14.03.2016 um 16:21

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);
}

Ja, das ist einfach nur ein angepasstes Beispiel aus der PHP-Doku. ;)


schrieb am 14.03.2016 um 16:29

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 schrieb am 14.03.2016 um 16:31

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 schrieb am 14.03.2016 um 16:43

warum fügst du nicht einfach vorne ein "img_2016" hinzu?


Umlüx schrieb am 14.03.2016 um 17:00

vermutlich will er ein "not found" irgendwie formschön abfangen und nicht bloß ein 404 ausgeben?


meepmeep schrieb am 14.03.2016 um 17:49

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')">


Gegi schrieb am 14.03.2016 um 22:10

Zitat von Umlüx
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 schrieb am 14.03.2016 um 23:36

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