|
| 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.
| |
|
|