Avatar billede backside Nybegynder
13. maj 2003 - 20:47 Der er 22 kommentarer og
2 løsninger

Søg dir efter billeder og txt

Jeg har denne lille ting der viser thumbnails af billeder i det aktuelle dir, den henter så tekst fra den tilhørende .txt fil.

Det der så er mit spm er:
1) Hvordan får jeg den til at søge efter billeder i alle mapper/undermapper der er?
2) Som det er nu får jeg fejl hvis .txt ikke findes, hvordan udskriver jeg feks. "Der findes ikke tekst til dette billede" hvis .txt ikke er der?
3) Hvis billede 1 hedder 1.jpg er jeg nød til at kalde .txt filen 1.jpg.txt, jeg vil kun ha´ prefix + .txt.
Hvordan gør jeg det?
Håber det er forståeligt. ;)

Lidt kode:
www.backside.dk/e/php_problem.htm
Avatar billede backside Nybegynder
13. maj 2003 - 20:57 #1
De skal hente fra img/dir1, img/dir2, img/?
Der laves løbende nye med mkdir i upload scriptet.
Avatar billede ohmish Nybegynder
13. maj 2003 - 21:13 #2
spørgsmål # 1 m.m.:

<?php
function listdir( $dir, $search ) {
    $mappe = opendir($dir) or die ("mappe ikke fundet");
    while($fil = readdir($mappe)) { 
        if ($fil != "." && $fil != "..") {
echo "| $dir $fil<br>";
              if ( is_dir( $dir . $fil ) ) {                   
              listdir( $dir .$fil ."/", $search );
              } else if ( preg_match("/$search/i", $fil) ) {
echo "| $dir $fil<br>";
                }
        }
    }
}

$search = "jpg" ; // EVT. SØGEORD
$bunddir = "/" ; // HOVEDMAPPE (og dennes undermapper) DER SKAL SØGES I
listdir( $bunddir, $search );

?>
Avatar billede backside Nybegynder
13. maj 2003 - 21:20 #3
Hmm, kan ikke lige se ideen med det der i forhold til mit eksempel!!
Jeg er ikke helt stiv i php endnu. ;)
Avatar billede ohmish Nybegynder
13. maj 2003 - 21:26 #4
ok. men det den gør at at vise indholdet i mappen + alle undermapper.. det ku du så tilpasse på en måde. ret dog lige $bunddir = "/";  til $bunddir = "./" ;
brug det eller brug det ikke. men det var det du spurgte om i spm.1.
Avatar billede backside Nybegynder
13. maj 2003 - 21:28 #5
Ja, det har du ret i, men jeg havde håbet på at få hjælp til at smide det ind i mit eksisterende script.
Avatar billede ohmish Nybegynder
13. maj 2003 - 21:47 #6
spm. 2: ret <? include ("$filename.txt"); ?> til:

<? @include ("$filename.txt"); ?>
Avatar billede backside Nybegynder
13. maj 2003 - 22:02 #7
Ja, nu kommer den da ikke med fejl.
Avatar billede nicklasb Nybegynder
13. maj 2003 - 22:04 #8
i stedet for bare at undlade visningen af fejlen med include af filen, (men alligevel prøve at includere den) kunne du jo evt i stedet lige teste om filen overhovedet findes. Herved kan du også skrive en standard-tekst hvis den ikke gør, i stedet for bare at henkaste en fejlmeddelelse..

if (file_exists($filename)) {
    include ("$filename");
} else {
    echo 'Der findes desværre ingen kommentar til dette billede!';
}

Tror jeg ville fortrække denne løsning

til 3: Kan du KUN uploade filer af samme filtype ud over dine beskrivelser i txt-formatet??
Det jeg tænker på er hvad du vil have til at ske hvis der fx er både en fil med navnet 1.jpg og 1.gif (eller er de autonummereret?? Har ikke lige giddet læse hele dit script igennem.. ;)
Avatar billede backside Nybegynder
13. maj 2003 - 22:10 #9
I 3´eren har du da ret.
Den glemmer vi. ;)

Det andet prøver jeg lige jeg lige.
Avatar billede backside Nybegynder
13. maj 2003 - 22:13 #10
Ok den virker. Der manglede bare lige et par ""

Så mangler jeg kun at få styr på 1´eren
Avatar billede nicklasb Nybegynder
13. maj 2003 - 22:17 #11
hvor mangler der ""'er?? hvis det er i min echo du mener, er det helt fint med 'ér.. (faktisk kun bedre.. ;)

har som sagt ikke kigget dit script igennem endnu, og gidder heller ikke nu.. men har du prøvet det derer blevet forslået længere oppe??
Avatar billede backside Nybegynder
13. maj 2003 - 22:20 #12
if (file_exists($filename)) {
    include ("$filename");
rettede jeg til:
if (file_exists("$filename")) {
    include ("$filename");
Så virkede det.

Ja, jeg har set på det længere oppe, men jeg fatta nada. ;)
Avatar billede nicklasb Nybegynder
13. maj 2003 - 22:27 #13
ok.. skulle ellers ikke være nødvendigt hvis filnanvnet ikke indeholder "ulovlige" karaktere ?!?
Nå.. lige meget.. hvis bare det virker..

ved ikke om scriptet virker.. men kunne forstille mig at det var postet fordi det gjode..

Sæt function'en (fra function til den sidste }) op i toppen af scriptet.. og skriv derefter de tre linier :

$search = "jpg" ; // EVT. SØGEORD
$bunddir = "/" ; // HOVEDMAPPE (og dennes undermapper) DER SKAL SØGES I
listdir( $bunddir, $search );

der hvor du ønsker at få listet indholdet af subdirene..
se om det ikke skulle virke.. ellers må vi finde på noget andet..
Avatar billede backside Nybegynder
13. maj 2003 - 22:35 #14
Jo, det virker skam.
http://www.backside.dk/beta/upload/album.php

Men jeg skal ikke ha´ "listet" filerne, det er derfor jeg ikke kan finde ud af at bruge det.

Sorry hvis jeg er lidt fatsvag. ;)
Avatar billede ohmish Nybegynder
14. maj 2003 - 00:55 #15
backside> fortæl hvordan du vil ha listet filerne ved søgning (eller hvordan ikke) :)
Avatar billede ohmish Nybegynder
14. maj 2003 - 01:28 #16
nu har jeg bikset noget sammen du måske ka bruge:

$dir = "./"; // SØG I DENNE MAPPE OG UNDER
$search = ".jpg"; $search2 = ".gif"; // SØG PÅ DISSE FILTYPER
function listdir($dir,$search,$search2) {
    $mappe = opendir($dir) or die ("mappe ikke fundet");
    while($fil = readdir($mappe)) { 
        if ($fil != "." && $fil != "..") {
        if ( is_dir( $dir . $fil ) ) {
        listdir( $dir .$fil ."/", $search, $search2); }
        elseif ( preg_match("/$search/i", $fil) || preg_match("/$search2/i", $fil)) {
    echo $fil.":<br><img src=\"$dir$fil\" border=\"0\"><br><br>"; $count++; }
    } }
}

// NÅR DU VIL SØGE SKAL DU BARE BRUGE DENNE KOMMANDO:
listdir($dir, $search, $search2);
Avatar billede backside Nybegynder
14. maj 2003 - 09:02 #17
ohmish>> Se mit eksempel, den skal visse billederne, ikke liste dem. ;)
Den viser bare kun fra det aktuelle dir, den skal vise hvad der er i subdir også.
Avatar billede backside Nybegynder
14. maj 2003 - 11:29 #18
nicklasb>> Smider du også lige et svar?

Jeg takker for hjælpen
Avatar billede ohmish Nybegynder
14. maj 2003 - 12:48 #19
hvis du prøver mit sidste eksempel kan du se at billederne bliver vist.
Avatar billede backside Nybegynder
14. maj 2003 - 13:18 #20
Jeg prøver at se om jeg kan få det til at virke. Tak
Avatar billede nicklasb Nybegynder
14. maj 2003 - 15:59 #21
jo.. selvfølgelig.. :D
Avatar billede backside Nybegynder
14. maj 2003 - 17:50 #22
Kan ikke prøve det da min side er nede igen. (cliche skod #$&@¤*%)
Avatar billede nicklasb Nybegynder
14. maj 2003 - 18:13 #23
hehe.. min er som altid oppe.. ;) http://www.bornstein.dk
hvis du udelukkende arbejder med php, kan jeg VARMT anbefale dig at bede dem skifte til deres FreeBSD-server.. Den er altså bare stabil.. :)
Avatar billede backside Nybegynder
14. maj 2003 - 19:10 #24
Jo men, for dit vedkomende ville der ikke være den store forskel, der er jo ikke noget på siden.  he he
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester