10. juli 2005 - 13:24
Der er
44 kommentarer og 1 løsning
opendir problem
Jeg har et problem... eller rettere, jeg ved ikke hvordan jeg kan gøre det jeg vil. Jeg har denne stump kode her... jeg vil have at den eks. kun viser/åbner det billeder hvor der eks. står 1 foran. eks. 1-billde.jpg hvis der så ligger andre billeder der ikke har 1 foran skal den ikke vise/åbne dem. Er dette noget som kan lade sig gøre? _________________________________________________ $handle = opendir('/mappe/'); while (false !== ($data = readdir($handle))) { if ($data != "." && $data != "..") { // add the binary data stored in the string 'filedata' //-------------------------------------------------- @$file = fopen ("/mappe/$data", "rb"); if (!$file) { echo "<font color=red>File $data failed.</font><br>"; #exit; } else { if($f_eks==""){$f_eks="htm";} while (!feof ($file)) { $filedata= fread ($file, 10000*1028); } } @fclose($file);
Annonceindlæg fra Infor
Du kan vel blot tjekke med substr() if (substring($var, 1) == '1')
jeg har en variable som hedder $id hvordan skal den så se ud i koden?
Det må du jo bedst selv vide ?
jeg kan altså ikke få det til at virke
$handle = opendir('/mappe/'); while (false !== ($data = readdir($handle))) { if ($data != "." && $data != "..") { if (substring($data, 1) == '1') continue; // add the binary data stored in the string 'filedata' //-------------------------------------------------- @$file = fopen ("/mappe/$data", "rb"); if (!$file) { echo "<font color=red>File $data failed.</font><br>"; #exit; } else { if ($f_eks == "") $f_eks="htm"; while (!feof($file)) { $filedata = fread($file, 10000*1028); } } @fclose($file);
Sludder: $handle = opendir('/mappe/'); while (false !== ($data = readdir($handle))) { if ($data != "." && $data != "..") { if (substring($data, 1) != '1') continue; // add the binary data stored in the string 'filedata' //-------------------------------------------------- @$file = fopen ("/mappe/$data", "rb"); if (!$file) { echo "<font color=red>File $data failed.</font><br>"; #exit; } else { if ($f_eks == "") $f_eks="htm"; while (!feof($file)) { $filedata = fread($file, 10000*1028); } } @fclose($file);
nielle, copy/paste er farligt :) Jeg havde fået skrevet substring, og det skal self være substr.
... plus at indekset skal være 0: $handle = opendir('/mappe/'); while (false !== ($data = readdir($handle))) { if ($data != "." && $data != "..") { if (substr($data, 0) != '1') continue; // add the binary data stored in the string 'filedata' //-------------------------------------------------- @$file = fopen ("/mappe/$data", "rb"); if (!$file) { echo "<font color=red>File $data failed.</font><br>"; #exit; } else { if ($f_eks == "") $f_eks="htm"; while (!feof($file)) { $filedata = fread($file, 10000*1028); } } @fclose($file);
10. juli 2005 - 14:38
#10
Ja, også det. Tror jeg skal holde mig væk i dag ;)
10. juli 2005 - 14:39
#11
Vi er vist *alle* ramt hårdt af varmen. Burde ligge på stranden i stedet for at sidde foran PC'en. ;^)
10. juli 2005 - 14:48
#12
syntes ikke rigtigt det virker :(
10. juli 2005 - 14:51
#13
Den slags udsagn kan vi jo desværre ikke rigtigt bruge til ret meget... Hvad sker der? Hvad sker der ikke? Hvad havde du forventet der skete?
10. juli 2005 - 14:55
#14
det var meningen den skulle gemme de billeder med 1- foran. men den gemmer slet ikke noget, som den ikke kan genkende filen
10. juli 2005 - 14:57
#15
det skulle parses til en zip fil... det virker uden vores "substr", men så gemmer den alt indholdet i min mappe og det vil jeg ikke have. kun billeder med $id(tallet)- foran
10. juli 2005 - 15:04
#16
$handle = opendir('/mappe/'); while (false !== ($data = readdir($handle))) { if ($data != "." && $data != "..") { if (substr($data, 0) != '1') continue; $filename = "/mappe/$data"; // add the binary data stored in the string 'filedata' //-------------------------------------------------- $handle = fopen($filename, "rb"); if (!$handle) { echo "<font color=red>File $data failed.</font><br>"; exit; } else { $filedata = fread($handle, filesize($filename)); } fclose($handle);
10. juli 2005 - 15:19
#17
det gemmer slet ikke noget i zip filen.... det er somon den slet ikke kan identificere filerne
10. juli 2005 - 15:20
#18
det må være noget galt med: if (substr($data, 0) != '1') continue; ligeså snart jeg fjerner den så gammer den alt indhold fra mappen
10. juli 2005 - 15:22
#19
Måske: if (substr($data, 0) != "1") continue; i stedet.
10. juli 2005 - 15:24
#20
Nej, nej, selvfølgelig: if (substr($data, 0, 1) != "1") continue;
10. juli 2005 - 15:30
#21
jubii... det ser ud til at virke :) men nu er der opstået et problem igen hehe... den tager også billeder der eks. hedder 7002billede istedet for 7-billede
10. juli 2005 - 15:33
#22
Hvor kom "7" nu pludselig fra? Men bortset fra det, så tager den da nu både "1002billede" og "1-billede" fordi at de begge starter med "1". Det lyder som om at den ikke skal det. Men hvad er reglen så?
10. juli 2005 - 15:38
#23
okay... jeg har sat en variable ind: if (substr($data, 0, 1) != "$id") continue; den skal kun zippe filer der hedder eks 7/$id og så - bagefter... ikke bare alle der starter med 7/$id
10. juli 2005 - 15:39
#24
if (substr($data, 0, 2) != "$id-") continue;
10. juli 2005 - 15:46
#25
det har jeg selv prøvet.. der laver den det samme nummer som før... den putter slet ikke noget i zipfilen
10. juli 2005 - 15:48
#26
nu virker det... jeg glemte selvfølgelig: if (substr($data, 0, 2) brugte if (substr($data, 0, 1) istedet... det må være varmen :) læg et svar
10. juli 2005 - 15:50
#27
Øjeblik, jeg er ikke sikker på at vi er helt færdige. Hvad kan der ligge i din $id? Kan der f.eks. lægge sådan noget som "13" eller er det altid præcist ét tegn?
10. juli 2005 - 15:57
#28
det kan sagtens være med flere tal
10. juli 2005 - 16:03
#29
Ja, så dur den nuværende løsning nemlig ikke. Prøv med: if (strstr($data, "$id-") != 0) continue;
10. juli 2005 - 16:09
#30
nej det virker ikke... nu ligger den hele mappens indhold ind
10. juli 2005 - 16:14
#31
Min fejl, det skulle have været: if (strpos($data, "$id-") != 0) continue;
10. juli 2005 - 16:15
#32
nielle, ved ik om jeg sover nu, men hvad med: if (substr($data, 0, strlen($id)) == $id)
10. juli 2005 - 16:17
#33
Jep, du sover lige nu. Der skal nemlig være en bindestreg efter: if (substr($data, 0, strlen($id)+1) == "$id-") continue;
10. juli 2005 - 16:19
#34
... problemet er bare at jeg ikke er helt sikker på om $id er et tal eller en streng i det aktuelle tilfælde, og derfor satser jeg på en løsning hvor den castes til en streng under alle omstændighjeder.
10. juli 2005 - 16:25
#35
ja det virker stadig ikke :( (den forbandede varme) den ligger stadig alt fra mappen ind
10. juli 2005 - 16:25
#36
Det kunne tyde på at den kommer fra get/post, og så vil den være en streng. strstr() søger i hele strengen, og kan derfor ikke bruges ?
10. juli 2005 - 16:35
#37
Koden fra 10/07-2005 16:14:26 burde virke.
10. juli 2005 - 16:43
#38
det gør den ikke :(
10. juli 2005 - 16:45
#39
Lægger den alle filerne til i zip-filen, eller lægger den ingen af dem til?
10. juli 2005 - 16:47
#40
den lægger alle
10. juli 2005 - 16:50
#41
Prøv denne udvidelse: $pos = strpos($data, "$id-"); if ($pos === false) continue; if ($pos != 0) continue;
10. juli 2005 - 16:54
#42
det ser ud til at the var tricket :), for nu virker det
10. juli 2005 - 16:55
#43
smid svar :)
10. juli 2005 - 16:58
#44
Ok, nu er jeg rimeligt sikker på at vi kom i mål. :^) .. og et svar. :^)
10. juli 2005 - 17:53
#45
ja det tog sin tid.. og jeg er taknemmelig for al den hjælp :) kom så ud i solen! :)
Vi tilbyder markedets bedste kurser inden for webudvikling