12. december 2004 - 16:23
Der er
26 kommentarer og 1 løsning
Problemer med at læse fra fysiske drev.
Hey Eksperter! Jeg har nogle problemer med følgende script, som skal åbne den nyeste undermappe og tage billederne derfra... Fejlmeldingen lyder: Warning: arsort() expects parameter 1 to be array, null given in /var/www/epoxy/web3/teen-clubdk/docs/overframe.php on line 19 Warning: key(): Passed variable is not an array or object in /var/www/epoxy/web3/teen-clubdk/docs/overframe.php on line 20 Her er et lille stump af min kode: $d = dir($mappemedbilleder); while (false !== ($entry = $d->read())) { if (is_dir($mappemedbilleder . $entry) && $entry != '.' && $entry != '..') { $file['name'][] = $entry; $file['tid'][] = filemtime($mappemedbilleder . $entry); } } $d->close(); arsort($file['tid']); $nr = key($file['tid']);
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
12. december 2004 - 17:06
#1
is_dir vil vel altid være false, når du tester på et billede/fil... prøv med ! foran
12. december 2004 - 17:12
#2
Jeg må sku indrømme jeg er rimelig lost, nogt en anden har lavet til mig nemlig. Har lige prøvet: while (!false !== ($file1 = readdir($handle1))) { Men jeg syntes nu det ser meget forkert ud.. Giver ikk meget logik den test i mit hovede.
12. december 2004 - 17:13
#3
ups..
12. december 2004 - 17:13
#4
det var is_dir du skulle sætte ! foran $d = dir($mappemedbilleder); while (false !== ($entry = $d->read())) { if (!is_dir($mappemedbilleder . $entry) && $entry != '.' && $entry != '..') { $file['name'][] = $entry; $file['tid'][] = filemtime($mappemedbilleder . $entry); } } $d->close(); arsort($file['tid']); $nr = key($file['tid']); sådan
12. december 2004 - 17:15
#5
eller brug is_file istedet for is_dir, det er vel mere logisk
12. december 2004 - 17:16
#6
Ja, sidder lige og koger.. Har bøvlet rimelig længe med det... Det var ikk lige det. Og ellers er det fordi der er flere fejl..
12. december 2004 - 17:18
#7
virker fint her
12. december 2004 - 17:18
#8
hmm, tjek
www.teen-club.dk/overframe.php Tror der er noget helt galt..
Sætter lige point tallet op, og ligger hele koden ind..
12. december 2004 - 17:19
#9
<?php $mappemedbilleder = "/var/www/epoxy/web3/teen-clubdk/docs/billeder"; $mappemedhtml = "/var/www/epoxy/web3/teen-clubdk/docs/gskaerm"; $hastighed = "5"; //sekunder $tal1 = $_GET['tal1']; $tal2 = $_GET['tal2']; if(!isset($tal1)) $tal1 = 0; if(!isset($tal2)) $tal2 = 0; //Array med billedefiler oprettes og fyldes $d = dir($mappemedbilleder); while (false !== ($entry = $d->read())) { if (!is_file($mappemedbilleder . $entry) && $entry != '.' && $entry != '..') { $file['name'][] = $entry; $file['tid'][] = filemtime($mappemedbilleder . $entry); } } $d->close(); arsort($file['tid']); $nr = key($file['tid']); $billeder = array(); $handle1 = opendir($mappemedbilleder.$file['name'][$nr]); while (false !== ($file1 = readdir($handle1))) { if($file1 != "." && $file1 != "..") { array_push($billeder, $file1); } } closedir($handle1); //Array med html filer oprettes og fyldes $htmlfiler = array(); $handle2 = opendir($mappemedhtml); while(false !== ($file2 = readdir($handle2))) { if($file2 != "." && $file2 != "..") { array_push($htmlfiler, $file2); } } closedir($handle2); //Denne frame genindlæses, og dermed skifter billedet (i den anden frame). Hvis tallet kan divideres med 5 vises en html side. echo "<html><body><script type=\"text/javascript\">"; if($tal2 >= sizeof($htmlfiler)) $tal2 = 0; if($tal1 % 5 == 0) { $htmlfil = $htmlfiler[$tal2++]; echo "parent.underframe.location.href='{$htmlfil}';"; } else { echo "parent.underframe.location.href='{$billeder[rand(0, sizeof($billeder)-1)]}';"; } $ting = ++$tal1; echo "setTimeout('parent.overframe.location.href='{$_SERVER['PHP_SELF']}?tal1={$ting}&tal2={$tal2}', {$hastighed});</script></body></html>"; ?>
12. december 2004 - 17:29
#10
den skriver jo hvad fejlen er, så det skulle være til at rette for dig No such file or directory
12. december 2004 - 17:30
#11
og fejlen er nok så, at du skal have en "/" bagpå dine stier
12. december 2004 - 17:32
#12
og du skal jo iøvrigt ikke sige !is_file... enten !is_dir eller is_file
12. december 2004 - 17:54
#13
Den skriver:
opendir(/var/www/epoxy/web3/teen-clubdk/docs/billeder/P1010004.JPG): failed to open dir: Not a directory in /var/www/epoxy/web3/teen-clubdk/docs/overframe.php on line 23
men
www.teen-club.dk/billeder/P1010004.JPG eksistere.
12. december 2004 - 17:56
#14
tjah, men det er ikke et "directory", så det er jo til at forstå den brokker sig.
12. december 2004 - 17:57
#15
Nej, det er en fejl den eksister... Alle billederne ligger i undermapper under billeder.. P1010004.JPG har sneget sig ud sammen med et par andre. Har fjernet dem.
12. december 2004 - 17:58
#16
kan være der skal rettes tilbage til is_dir istedet for !is_dir.
12. december 2004 - 17:58
#17
den fejl den siger, giver nu fint mening uanset hvad du mener
12. december 2004 - 17:59
#18
Nej, det er det ikke, har også fjernet dem. Men den skulle gerne åbne den nyeste mappe, og kun den nyeste og henter et random billede derfra. Og for hvert 5 opdatering åbne en html fil fra en anden mappe istedet.
12. december 2004 - 18:00
#19
"Nej, det er det ikke, har også fjernet dem" <-- hvad svarer du på her?
12. december 2004 - 18:03
#20
Det var det med at de par billeder der havde sneget sig ikk ikke var mapper :)
12. december 2004 - 18:05
#21
alle fejl er væk nu, så hvad er problemet så?
12. december 2004 - 18:07
#22
Det fatter jeg heller ikke. Tror compen ryger ud af vinduet snart. Grr!
overframe er et del af et frameset på siden
www.teen-club.dk/gskaerm.php Som ser således ud:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN">
<HTML>
<HEAD>
<title>TEEN-CLUB dot dk</title>
</HEAD>
<frameset rows="1,*">
<frame name="overframe" src="overframe.php">
<frame name="underframe">
</frameset>
</HTML>
12. december 2004 - 18:09
#23
der er en javascript fejl
12. december 2004 - 18:11
#24
nå, der er håndbold... held og lykke
12. december 2004 - 18:16
#25
Hehe, Takker! Tror jeg selv er ved at finde noget fejl. Mange tak... Kig lige forbi en gang igen.. Der ligger nogle points og venter på dig i hvert fald!
12. december 2004 - 18:40
#26
bare behold dem
13. december 2004 - 19:10
#27
Hvis nogen skulle have interesse i scriptet er det her, og det er blevet funktionelt! <?php $mappemedbilleder = ""; $mappemedhtml = ""; $sek = 5; //sekunder mellem side skift $tal1 = $_GET['tal1']; $tal2 = $_GET['tal2']; if(!isset($tal1)) $tal1 = 1; if(!isset($tal2)) $tal2 = 0; //Array med billedefiler oprettes og fyldes $d = dir($mappemedbilleder); while (false !== ($entry = $d->read())) { if (is_dir($mappemedbilleder . $entry) && $entry != '.' && $entry != '..') { $file['dir'] = $entry; $file['name'][] = $entry; $file['tid'][] = filemtime($mappemedbilleder . $entry); } } $d->close(); arsort($file['tid']); $nr = key($file['tid']); $billeder = array(); $handle1 = opendir($mappemedbilleder.$file['name'][$nr]); while (false !== ($file1 = readdir($handle1))) { if($file1 != "." && $file1 != "..") { array_push($billeder, $file1); } } closedir($handle1); //Array med html filer oprettes og fyldes $htmlfiler = array(); $handle2 = opendir($mappemedhtml); while(false !== ($file2 = readdir($handle2))) { if($file2 != "." && $file2 != "..") { array_push($htmlfiler, $file2); } } closedir($handle2); //Denne frame genindlæses, og dermed skifter billedet (i den anden frame). Hvis tallet kan divideres med 5 vises en html side. print "<html><body><script type=\"text/javascript\">"; if($tal2 >= sizeof($htmlfiler)) $tal2 = 0; if($tal1 % 5 == 0) { $htmlfil = $htmlfiler[$tal2++]; print "parent.underframe.location.href=\"gskaerm/".$htmlfil."\";"; } else { print "parent.underframe.location.href=\"billeder/".$file['dir']."/".$billeder[rand(0, sizeof($billeder)-1)]."\";"; } $hastighed = $sek*1000; print "setTimeout(\"parent.overframe.location.href='overframe.php?tal1=".++$tal1."&tal2=".$tal2."'\", ".$hastighed.");</script></body></html>"; ?>
Vi tilbyder markedets bedste kurser inden for webudvikling