/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Vælge en tilfældig fil i en bestemt mappe ~
Fra : Jesper Andersen


Dato : 30-07-03 15:41

Hejsa...
Nogen der ved hvordan koden skal se ud til at vælge en tilfældig fil i
en bestemt mappe ?

Jeg har prøvet at lave dette, men det virker ikke ordentlig.

$mappe1 = "$mappe/thumbs";
if ($dir = @opendir($mappe1)) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != ".." &&
!is_dir($mappe."/".$file)) {
$billedarray[] = $file;
}
}
closedir($dir);
}
$i = rand(0, count($billedarray)-1);

I dette script går der et eller andet galt, den får fat i filnavne fra
andre mapper end den forudbestemte.

Jeg vil gerne have hvis nogen kan sige mig enten hvad der er galt,
eller fx. give mig et eksempel på hvordan det skal se ud.

Med Venlig Hilsen
Jesper Andersen

 
 
Thomas Lindgaard (30-07-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 30-07-03 16:56

Jesper Andersen wrote:
> Hejsa...
> Nogen der ved hvordan koden skal se ud til at vælge en tilfældig fil i
> en bestemt mappe ?
>
> Jeg har prøvet at lave dette, men det virker ikke ordentlig.
>
> $mappe1 = "$mappe/thumbs";
> if ($dir = @opendir($mappe1)) {
> while (($file = readdir($dir)) !== false) {
> if ($file != "." && $file != ".." &&
> !is_dir($mappe."/".$file)) {
^^^
Skal der ikke stå $mappe1 her? Og kan du ikke evt. nøjes med sidste
betingelse (. og .. er jo mapper)?

> $billedarray[] = $file;
> }
> }
> closedir($dir);
> }
> $i = rand(0, count($billedarray)-1);

.... og her åbner du så filen vha.

$filecontents = file_get_contents($mappe1.'/'.$billedarray[$i]);

eller noget lignende, ikke? (bare lige for at tjekke at jeg har forstået
koden). Bruger du også $mappe1 her?

> I dette script går der et eller andet galt, den får fat i filnavne fra
> andre mapper end den forudbestemte.
>
> Jeg vil gerne have hvis nogen kan sige mig enten hvad der er galt,
> eller fx. give mig et eksempel på hvordan det skal se ud.
>
> Med Venlig Hilsen
> Jesper Andersen

Mvh.
/Thomas


Jesper Andersen (30-07-2003)
Kommentar
Fra : Jesper Andersen


Dato : 30-07-03 17:04

Jeg overføre varablen $mappe fra en anden side, og den bliver så brugt
til at lave $mappe1 med, da jeg skal bruge variablen $mappe længere
nede i mit script.

Sådan ser koden ud nu.

$mappe1 = "$mappe/thumbs";

if ($dir = @opendir($mappe1)) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != ".." &&
!is_dir($mappe1."/".$file)) {
$billedarray[] = $file;
}
}
closedir($dir);
}
$i = rand(0, count($billedarray)-1);

Du kan se hvad det er der sker her: www.noddepatruljen.dk under
galleri.

Den tager ikke de rigtige filer hver gang...

Du har måske et forslag til en kode ?

Her er hele koden:

<html>
<head>
<title>Syswatch.dk</title>
<LINK REL="stylesheet" TYPE="text/css" HREF="css/style.css">
</head>
<body>
<CENTER><B><FONT SIZE=2>NøddePatruljens
Galleri</FONT></B><BR></CENTER>
<BR>
<?php
include("ban.php");
include("dbcon.php");

$query = "SELECT * FROM Galleri ORDER BY gid DESC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
print "<center>";
extract($row);
$mappe1 = "$mappe/thumbs";

if ($dir = @opendir($mappe1)) {
while (($file = readdir($dir)) !== false) {
if ($file != "." && $file != ".." &&
!is_dir($mappe1."/".$file)) {
$billedarray[] = $file;
}
}
closedir($dir);
}
$i = rand(0, count($billedarray)-1);

print "<TABLE WIDTH=95% BORDER=1 CELLSPACING=0><TR><TD>";
print "<TABLE WIDTH=90% BORDER=0>";
print "<TR>";
print "<TD WIDTH=20%><A
HREF=$mappe/index.php?bib=$mappe&event=$gid target=main><img
src=\"$mappe1/$billedarray[$i]\" BORDER=0></A></TD>";
print "<TD VALIGN=TOP WIDTH=70%><b>$overskrift</b><br><b>Sted:</b>
$sted<br><b>Oprettet:</b> $oprettet<br><b>Vist: $vistantal</b>
gange.<br></TD>";
print "</TR></TABLE>";
print "</TD></TR></TABLE>";
print "<BR>";
}
?>



</BODY>
</HTML>

Thomas Lindgaard (30-07-2003)
Kommentar
Fra : Thomas Lindgaard


Dato : 30-07-03 17:23

Hmm... umiddelbart kan jeg ikke se noget galt i koden...

Har du prøvet at tjekke indholdet af $mappe og $mappe1? Og er du sikker
på at du står i den rigtige mappe fra starten af (prøv evt. at chdir()
til mappen).

.... jeg kan se at du sidder og leger - har du fået det til at virke?

Mvh.
/Thomas


Martin Sveegaard (30-07-2003)
Kommentar
Fra : Martin Sveegaard


Dato : 30-07-03 17:30

On Wed, 30 Jul 2003 16:41:13 +0200, Jesper Andersen
<jaREMOVE@palby.dk> wrote:

>Hejsa...
>Nogen der ved hvordan koden skal se ud til at vælge en tilfældig fil i
>en bestemt mappe ?

Jeg har tilfældigvis lige lavet en sådan:

<?
function Filer($dir) {
if ($directory_handle = opendir($dir)) {
while (false !== ($file = readdir($directory_handle))) {
if (is_file($file)) {
$fil_liste[] = $file;
}
}
closedir($directory_handle);
return ($fil_liste);
} else {
return false;
}
}
$dir = "MyDir";
if ($filer = Filer($dir)) {
$nyfil = $filer[mt_rand(0,count($filer)-1)];
}
?>

MVH Martin S

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste