/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
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
brug af rand
Fra : Dinah
Vist : 780 gange
80 point
Dato : 30-01-07 10:09

Jeg vil gerne lave et script der kan includere en tilfældig fil fra en mappe.

Jeg har søgt og søgt, men jeg kan ikke finde noget nogen steder. er der en der kan/vil hjælpe?

Jeg har på et tidspunkt lavet det tidligere, men det virker ikke mere. Koden så sådan ud.



Kode
<?php
$dir_pointer=opendir("n");
while($indlaestfil = readdir($dir_pointer)){
if ($indlaestfil != '.' && indlaestfil != '..') {
$fil_array[] = $indlaestfil;
}
}
closedir($dir_pointer);
$arrey_antal = count($fil_array)-1;
$fil_nummer = rand(0, $array_antal);
$fil = "n/$fil_array[$nyhed_nummer]";

include($fil);

?>


Den returnerer :
Warning: include(n/) [function.include]: failed to open stream: Permission denied in C:\wamp\www\rand.php on line 14

Warning: include() [function.include]: Failed opening 'n/' for inclusion (include_path='.;C:\php5\pear') in C:\wamp\www\rand.php on line 14

Line 14 er min include linie.

 
 
Kommentar
Fra : natmaden


Dato : 30-01-07 12:04

ser ud til at du vil åbne mappen "n" ,
og at denne ikke eksistere.
Er du gået fra PHP4 til PHP5 efter at dit problem opstod ?
tror at fejlen ligger i
$fil = "n/$fil_array[$nyhed_nummer]";

prøv
$fil = "/n/$fil_array[$nyhed_nummer]";
$fil = "./n/$fil_array[$nyhed_nummer]";

Mvh. Jørgen

Kommentar
Fra : Dinah


Dato : 30-01-07 12:14

Ja, jeg er nok gået fra php4 til php5.

og ja, de sider der skal vælges imellem ligger i "n". Den mappe eksisterer, men jeg kan bare ikke finde ud af hvor fejlen ligger.

Det foreslåede hjælper desværre ikke - har du flere forslag?



Kommentar
Fra : præceptor


Dato : 30-01-07 12:29

Jeg har svært ved at tro, at det flg. nogensinde har fungeret:

Kode
$arrey_antal = count($fil_array)-1;
$fil_nummer = rand(0, $array_antal);


kan det tænkes at det der kan fungere har set således ud:

Kode
$array_antal = count($fil_array)-1;
$fil_nummer = rand(0, $array_antal);




Kommentar
Fra : natmaden


Dato : 30-01-07 12:29

for test:

//include($fil);
echo $fil;

Kommentar
Fra : Dinah


Dato : 30-01-07 12:41

Jeg kan altså ikke se nogen forskel på de koder du skriver

Testen returnerer

./n/

Øv, jeg kan bare ikke se hvorfor den ikke vil finde filen.

Kommentar
Fra : præceptor


Dato : 30-01-07 12:46

Når du ikke kan se forskel på

$arrey_antal
og
$array_antal

så kommer jeg til korts, og er for dum til at kunne hjælpe dig.



Kommentar
Fra : Dinah


Dato : 30-01-07 12:50

Ja, nu kan jeg, undskyld, og jeg stirrede ellers længe på de to koder

Jeg ville ønske at jeg kunne sige at det virkede nu, men det kan jeg desværre ikke

Kommentar
Fra : Angband


Dato : 30-01-07 13:52

hmm.. et andet gæt
Kode
$arrey_antal = count($fil_array)-1;
[B]$fil_nummer[/B] = rand(0, $array_antal);
$fil = "n/$fil_array[[B]$nyhed_nummer[/B]]";

include($fil);


skulle være

Kode
$arrey_antal = count($fil_array)-1;
[B]$fil_nummer[/B] = rand(0, $array_antal);
$fil = "n/$fil_array[[B]$fil_nummer[/B]]";

include($fil);


Kommentar
Fra : Angband


Dato : 30-01-07 13:52

hmm jo.. så kan man ikke lave fed tekst i CODE

ode
$arrey_antal = count($fil_array)-1;
$fil_nummer = rand(0, $array_antal);
$fil = "n/$fil_array[$nyhed_nummer]";

include($fil);



skulle være


Kode
$arrey_antal = count($fil_array)-1;
$fil_nummer = rand(0, $array_antal);
$fil = "n/$fil_array[$fil_nummer]";

include($fil);


Kommentar
Fra : præceptor


Dato : 30-01-07 13:54

Du har også et problem med
Kode
$fil = "n/$fil_array[$nyhed_nummer]";
det skulle vel være
Kode
$fil = "n/$fil_array[$fil_nummer]";


og endelig har du så også et problem med at scriptet ikke frasorterer . og .. og altså også forsøger at inkludere subdirectories, og den går jo ikke.

Kommentar
Fra : præceptor


Dato : 30-01-07 13:55

Nåh, der havde været en anden med den i mellemtiden ...

Kommentar
Fra : Dinah


Dato : 30-01-07 14:15

Ja, nu kan den finde filerne, men rigtigt nok så søger den efter noget mere, og jeg får fejl engang imellem i random'en.



Accepteret svar
Fra : præceptor

Modtaget 80 point
Dato : 30-01-07 14:30

Men, den sidste fejl, at du engang imellem får .. med, kan du vel slippe af med ved at ændre dit 0 i rand til 1 ?


altså
Kode
$fil_nummer = rand(1, $array_antal);



Godkendelse af svar
Fra : Dinah


Dato : 30-01-07 14:38

Tak for svaret præceptor. Du har været en stor hjælp. Også tak til jer andre.

Kommentar
Fra : natmaden


Dato : 30-01-07 23:04

Nå jeg er lige kommet hjem.
Ja løsningen er jo fundet, så det er jo godt.

Happy programming

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste