Avatar billede svend-herlig Nybegynder
25. februar 2008 - 19:51 Der er 9 kommentarer og
2 løsninger

billede bibliotek

Jeg for en fejl i denne linie:
    foreach ($arraycatcher as $outputimage)

Warning: Invalid argument supplied for foreach() in /fdf/bn8/data/webhotel/arhus11/hoved/billeder/2008.php on line 46
jeg har stiret mig blind på det, nogen der kan se splinten?



<?php
// Hovedfolder hvor alle billeder ligger under
    $userdirlocation = ('hoved/billeder/2008');
      // Function som læser alle filer mv. ind i et array.
      function listfiles($primarydirpath)
        {
          if(is_dir($primarydirpath))
            {
              $dirconnect = opendir($primarydirpath);
              $arraybank1 = array();
              $arraybank2 = array();
             
              while($file = readdir($dirconnect))
                {
                  if($file != "." && $file != ".." && $file[0] != '.')
                    {
                      if(is_dir($primarydirpath . "/" . $file))
                        {
                          $arraybank2 = listfiles($primarydirpath . "/" . $file);
                          if(is_array($arraybank2))
                            {
                              $arraybank1 = array_merge($arraybank1, $arraybank2);
                            }
                        }
                      else
                        {
                          array_push($arraybank1, $primarydirpath . "/" . $file);
                        }
                    }
              }
          closedir($dirconnect);
          }
        return $arraybank1;
      }
 
    // Array som kalder functionen og får resultatet retur
    $arraycatcher = listfiles($_SERVER["DOCUMENT_ROOT"] . $userdirlocation);
 
    // Loop som løber arrayet igennem og spytter billeder ud.
    foreach ($arraycatcher as $outputimage)
      {
        $imgwebpath = str_replace($_SERVER["DOCUMENT_ROOT"], "", $outputimage);
        $imgwebpath = str_replace(basename($outputimage), "", $imgwebpath);
 
          echo('<img src="' . $imgwebpath . basename($outputimage) . '" title="" alt=""/><p />' . "\r\n") ;
      }
?>
Avatar billede nielle Nybegynder
25. februar 2008 - 19:55 #1
Prøv at ændre til:

Du er her : Eksperten : Spørgsmål & Svar : Programmering :: Script :: PHP :: billede bibliotek :

billede bibliotek  15 point fra svend-herlig 


Jeg for en fejl i denne linie:
    foreach ($arraycatcher as $outputimage)

Warning: Invalid argument supplied for foreach() in /fdf/bn8/data/webhotel/arhus11/hoved/billeder/2008.php on line 46
jeg har stiret mig blind på det, nogen der kan se splinten?



<?php
// Hovedfolder hvor alle billeder ligger under
    $userdirlocation = ('hoved/billeder/2008');
      // Function som læser alle filer mv. ind i et array.
      function listfiles($primarydirpath)
        {
          $arraybank1 = array();
          $arraybank2 = array();

          if(is_dir($primarydirpath))
            {
              $dirconnect = opendir($primarydirpath);
             
              while($file = readdir($dirconnect))
                {
                  if($file != "." && $file != ".." && $file[0] != '.')
                    {
                      if(is_dir($primarydirpath . "/" . $file))
                        {
                          $arraybank2 = listfiles($primarydirpath . "/" . $file);
                          if(is_array($arraybank2))
                            {
                              $arraybank1 = array_merge($arraybank1, $arraybank2);
                            }
                        }
                      else
                        {
                          array_push($arraybank1, $primarydirpath . "/" . $file);
                        }
                    }
              }
          closedir($dirconnect);
          }
        return $arraybank1;
      }
Avatar billede nielle Nybegynder
25. februar 2008 - 19:56 #2
... hov der kom lidt for meget med :^)
Avatar billede svend-herlig Nybegynder
25. februar 2008 - 20:03 #3
altså:
<?php
// Hovedfolder hvor alle billeder ligger under
    $userdirlocation = ('hoved/billeder/2008');
      // Function som læser alle filer mv. ind i et array.
      function listfiles($primarydirpath)
        {
          $arraybank1 = array();
          $arraybank2 = array();

          if(is_dir($primarydirpath))
            {
              $dirconnect = opendir($primarydirpath);
             
              while($file = readdir($dirconnect))
                {
                  if($file != "." && $file != ".." && $file[0] != '.')
                    {
                      if(is_dir($primarydirpath . "/" . $file))
                        {
                          $arraybank2 = listfiles($primarydirpath . "/" . $file);
                          if(is_array($arraybank2))
                            {
                              $arraybank1 = array_merge($arraybank1, $arraybank2);
                            }
                        }
                      else
                        {
                          array_push($arraybank1, $primarydirpath . "/" . $file);
                        }
                    }
              }
          closedir($dirconnect);
          }
        return $arraybank1;
      }
 
    // Array som kalder functionen og får resultatet retur
    $arraycatcher = listfiles($_SERVER["DOCUMENT_ROOT"] . $userdirlocation);
 
    // Loop som løber arrayet igennem og spytter billeder ud.
    foreach ($arraycatcher as $outputimage)
      {
        $imgwebpath = str_replace($_SERVER["DOCUMENT_ROOT"], "", $outputimage);
        $imgwebpath = str_replace(basename($outputimage), "", $imgwebpath);
 
          echo('<img src="' . $imgwebpath . basename($outputimage) . '" title="" alt=""/><p />' . "\r\n") ;
      }
?>
Avatar billede svend-herlig Nybegynder
25. februar 2008 - 20:03 #4
giver dette:
Warning: Invalid argument supplied for foreach() in /fdf/bn8/data/webhotel/arhus11/hoved/billeder/2008.php on line 46

t=""/>
' . "\r\n") ; } ?>
Avatar billede nielle Nybegynder
25. februar 2008 - 20:16 #5
Er du sikker på at du får angivet den fulde sti til dine billeder?

Så vidt jeg kan se er det kun det aller yderste bibliotek hvor at de bliver foranstillet med $_SERVER["DOCUMENT_ROOT"]. Når listfiles() kalder sig selv rekursivt, mangler denne del.
Avatar billede olebole Juniormester
26. februar 2008 - 03:17 #6
<ole>

Husk, at $_SERVER["DOCUMENT_ROOT"] _ikke_ slutter med en slash! Det vil sige, at din sti skal være: '/hoved/billeder/2008'

nielle >> denne linje:
    $arraybank2 = listfiles($primarydirpath . "/" . $file);

- bliver stien forlænget i slutningen, men den begynder altid med $_SERVER["DOCUMENT_ROOT"] - for det gjorde det første kald  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
26. februar 2008 - 03:20 #7
- og du kan enten ændre din sti, eller kalde funktionen sådan:

$arraycatcher = listfiles($_SERVER["DOCUMENT_ROOT"] . "/" . $userdirlocation);
Avatar billede svend-herlig Nybegynder
26. februar 2008 - 09:49 #8
fandt selv fejlen, det handlede om at den ligger på en server der hedder fdf.dk
og på fdf.dk har vi fdf.dk/arhus11 og når jeg blot opgiver adressen:
/hoved/billeder/2008
sætter den det sådan ind:
fdf.dk/hoved/billeder/2008/alle_de_billeder_der_er_her...
istedet for
fdf.dk/arhus11/hoved/billeder/2008/alle_de_billeder_der_er_her...

dum fejl, men tak for forsøget hvis i mener i har krav på point så smid et svar.
Avatar billede nielle Nybegynder
26. februar 2008 - 17:15 #9
Springer over :^)
Avatar billede olebole Juniormester
26. februar 2008 - 17:55 #10
Så skal du bare selv lægge et svar og acceptere det  ;o)
Avatar billede svend-herlig Nybegynder
11. april 2008 - 10:28 #11
Ok, tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester