Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1025
Hei. Sitter her og pusler litt med å lage en "pool" til en hjemmeside i php.
Det jeg skal er å vise innholdet til en mappe ved hjelp av php. Så langt har jeg klart å liste alle filene i valgt mappe ved hjelp av:

<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$thelist .= '<a href="'.$file.'">&laquo;'.$file.'&raquo;<br></a>';
}
}
closedir($handle);
}
?>

Det er forsåvidt en liste bra nok for mitt formål, bortsett fra en ting. Jeg har lyst til å gjemme filer med gitte ekstensjoner, nærmere bestemt *.php.
Sliter veldig med å finne ut av dette, da jeg er helt blank på feltet.
Sist endret av Prognisse; 21. september 2010 kl. 14:59.
Du kan bruke pathinfo( $file ) for å returnere et array med informasjon om filen. Keyen 'extension' i arrayet inneholder etternavnet til filen.

Kode

var_dump( pathinfo("test.php") );
Output:

Kode

array(4) {
  ["dirname"]=>
  string(1) "."
  ["basename"]=>
  string(8) "test.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(4) "test"
}
Sitat av |d13m0b Vis innlegg
Du kan bruke pathinfo( $file ) for å returnere et array med informasjon om filen. Keyen 'extension' i arrayet inneholder etternavnet til filen.

Kode

var_dump( pathinfo("test.php") );
Output:

Kode

array(4) {
  ["dirname"]=>
  string(1) "."
  ["basename"]=>
  string(8) "test.php"
  ["extension"]=>
  string(3) "php"
  ["filename"]=>
  string(4) "test"
}
Vis hele sitatet...
Sliter med å få koden din til å gli inn med den jeg la ved i, da mine kunnskaper i php er veldig lave. Jeg driver hovedsakelig i lærer meg litt html, med noen problemstillinger som krever php (mye copy/past). Kan du gi meg litt hjelp for å få denne koden til å fungere sammen med min?

For sikkerhetsskyld. Jeg har en liste av filer i en mappe kalt "pool": (http://www.test.org/pool)

POOL:
sing-sing.mp3
jada.png
[COLOR="Red"]index.php[/COLOR]


Jeg vil ha samme den samme listen, bortsett fra at den ikke viser frem index.php:

POOL:
sing-sing.mp3
jada.png
Sist endret av Prognisse; 21. september 2010 kl. 16:02.
Okei. Kan gjøre det litt enklere og bare sjekke med strpos om den finner .php i strengen. Merk at denne vil trigge også dersom filen heter .phps.

Kode

<?php
if ($handle = opendir('.')) {
  while (false !== ($file = readdir($handle)))
    {
      if ($file != "." && $file != ".." && strpos($file, ".php") == false )
        {
          $thelist .= '<a href="'.$file.'">&laquo;'.$file.'&raquo; <br></a>';
        }
    }
  closedir($handle);
 }
?>
|d13m0b: Det funket utmerket. Tusen takk for hjelpen!
▼ ... over en uke senere ... ▼
Eller du kan korte koden til å ha samme effekt

Kode

<?php
$list = scandir('.');
foreach ($list as $file){
    $ext = pathinfo($file,PATHINFO_EXTENSION);
    if( ($file != ".") || ($file != "..") || ($ext != 'php') ){
        echo '<a href="'.$file.'">&laquo;'.$file.'&raquo; </a><br>';
    }
}
?>
Sist endret av mrsandvik; 29. september 2010 kl. 10:27.
Den der skriver bare ut filer som IKKE er php, hvis jeg har forstått koden din riktig?
Hva med denne koden..

Kode

<?php

$list = array(); //define an empty array

if ($handle = opendir('.'))
{
    while (false !== ($file = readdir($handle)))
    {
        if ($file != "." && $file != "..")
        {
            array_push($list, $file);
        }
    }
closedir($handle);
sort($list);
}

foreach ($list as $file)
{
    $ext = substr(strrchr($file, '.'), 1);
    if ($ext !== 'php')
    {
        echo '<a href="'.$file.'">&laquo;'.$file.'&raquo; </a><br>';
    }
}

?>
Yep,

Legg til flere extentions å skjule som sådan

Kode

($ext != 'cgi') || ($ext != 'pl') || ($ext != 'html') || ($ext != 'htm')
Dette vil skjule cgi, pl, html og html-filer også.

Hvis du ønsker å lagre disse filene liste til en array,

Kode

<?php
$myList = array(); //Blank array to store non PHP files
$list = scandir('.');
foreach ($list as $file){
    $ext = pathinfo($file,PATHINFO_EXTENSION);
    if( ($file != ".") || ($file != "..") || ($ext != 'php') ){
        $myList[] = $file;
    }
}
?>
Sist endret av mrsandvik; 29. september 2010 kl. 10:29.
Hva skjer med

Kode

while (false !== ($file = readdir($handle)))
?

Hvorfor ikke bare

Kode

while($file = readdir($handle))
While kjører jo uansett så lenge innholdet i parantesen er true...?
Eller har jeg misforstått noe?
Eller, hvorfor ikke bare bruke "glob" ?

Kode

glob('files/*.{!php}');
http://www.jedit.org/users-guide/globs.html
Sitat av Jannis! Vis innlegg
Hva skjer med

Kode

while (false !== ($file = readdir($handle)))
?

Hvorfor ikke bare

Kode

while($file = readdir($handle))
While kjører jo uansett så lenge innholdet i parantesen er true...?
Eller har jeg misforstått noe?
Vis hele sitatet...
Du har såklart helt rett!