[php] map herkennen bij uitlezen van dir

Pagina: 1
Acties:

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 23-08 22:18

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Ik heb van iemand een klein stukje code voor een filereader gekregen en ben die zelf gaan uitbreiden. Nu heb ik hem zelfs zo ver uitgebreid, dat ik gewoon via de browser mijn mappen op de server kan doorlopen, een soort wincmd interface. Ja, natuurlijk is dit afgeschermd met password enzo... ;)
Wat is het nut hiervan? Als ik niet thuis zit en toch een foto online even terug wil zoeken, dan kan ik dat zo doen, zonder eerst te hoeven in te loggen op de ftp van Stylite.

Wat wil ik nu: dat bij het uitlezen, mappen herkend worden en dat daar een ander icoontje voor komt te staan. Het is me al gelukt om alle soorten graphics te bestempelen met een mooi 'img' icoontje en de ascii-bestanden met een eigen passend icoontje.
Nu heb ik een stukje code, te weten dit:
PHP:
1
<?if (is_dir($file))    {    echo "[img]'dirlist/map.gif'[/img]&amp;nbsp;<a href='".$dir."/".$file."'>[".$file."]</a><br>";    }?>

hiermee herkent hij '.' en '..' al als directories en geeft er netjes een mapje aan. Maar als ik subdirectories in de betreffende map heb staan, herkent hij deze níet!

Nou kan ik simpel zijn en zeggen: subdirectories hebben bij mij nóóit een punt in de naam. Dus, geef alles met géén '.' in de $file is een subdirectory. Hoewel dit lang niet altijd opgaat zou het al een verbetering zijn. Hoe zoek ik binnen en variabele op punten (er staan natuurlijk nog veel meer chars in)?

Tweede oplossing: er is een functie die gewoon subdirectories herkent omdat ze 'mappen' zijn, weet ik veel. Ik heb deze functie niet op php.net kunnen vinden vooralsnog en ook in de search was er weinig bruikbaars.

Kan iemand me helpen?

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


  • flat
  • Registratie: Mei 2000
  • Niet online

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 23-08 22:18

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Ja dat is zo goed als oplossing 1... dwz. ik heb een klein stukje code uit de reacties gehaald;
PHP:
1
<?$ext = strrchr($file,'.'); // check for extensionif ($ext == "") {          // if no extension is found   echo $file;             // print filename   }?>

Omdat ik een if-constructie gebruik kan ik geen lange lappen code ertussen zetten... dus wilde ik er een functie van maken. Dus wat maakte ik ervan (en dat zal wel fout zijn)
PHP:
1
<?function ext_is($file){$ext = strrchr($file,'.');}?>

met in de if-constructie:
PHP:
1
<?                else if (ext_is($file) == "")                    {                    echo "[img]'dirlist/map.gif'[/img]&amp;nbsp;<a href='".$dir."/".$file."'>".$file."</a><br>";                    }?>

Maar dat klopt niet volgens mij, want hij moet in de if natuurlijk $ext uitlezen en niet $file.
Hoe kan ik hem nou vertellen dat hij die functie uit moet voeren en vervolgens mij de waarde van $ext moet vertellen?
Dit is n00b php, I know... ;)

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

is_dir hoort gewoon goed te gaan :?
probeer eens is_dir($dir . "/" . $file); oid?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 07:54
Op maandag 17 juni 2002 13:37 schreef Dark Blue het volgende:
Nu heb ik hem zelfs zo ver uitgebreid, dat ik gewoon via de browser mijn mappen op de server kan doorlopen, een soort wincmd interface. Ja, natuurlijk is dit afgeschermd met password enzo... ;)
Wat is het nut hiervan? Als ik niet thuis zit en toch een foto online even terug wil zoeken, dan kan ik dat zo doen, zonder eerst te hoeven in te loggen op de ftp van Stylite.
Ik wil niet flauw doen, maar Apache kan uit zichzelf toch al grafisch directories listen enzo? ;)

Verwijderd

uhm..
code:
1
!is_file

:?

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Heb het ff gauw getest maarre met is_dir is helemaal niks mis hier :? Checken op . in een naam is niet echt handig... als je dan een file hebt "plaatje" dan ziet ie het als dir. En andersom, een dirnaam als "upload.tmp" ziet ie dan als file.

[edit]
|:( eerst refreshen, dan replyen... ben weer niet de enigste ;)

Exact expert nodig?


  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 23-08 22:18

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Op maandag 17 juni 2002 13:59 schreef ACM het volgende:
is_dir hoort gewoon goed te gaan :?
probeer eens is_dir($dir . "/" . $file); oid?
Yes!!! Die doet het! ACM, zou je het leuk vinden me te vertellen wát hij nou eigenlijk doet? Ik ken dit soort functies nog niet van buiten nml. ;)
Op maandag 17 juni 2002 14:01 schreef Soultaker het volgende:
Ik wil niet flauw doen, maar Apache kan uit zichzelf toch al grafisch directories listen enzo? ;)
Ja weet ik, maar ik vind het gewoon handig en leuk om het zo te schrijven... ook als er dan een index in de map staat, kan ik toch nog de inhoud afzonderlijk gaan doorkijken en niet altijd naar die index gestuurd worden.
Bovendien ziet deze er veel flexer uit 8-) (lees: shiny winXP icons, wat wil een meisje nog meer :P)

Bovendien spijker ik mijn php-kennis zo weer een beetje bij :)

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


  • flat
  • Registratie: Mei 2000
  • Niet online
Op maandag 17 juni 2002 14:12 schreef Dark Blue het volgende:

[..]

Yes!!! Die doet het! ACM, zou je het leuk vinden me te vertellen wát hij nou eigenlijk doet? Ik ken dit soort functies nog niet van buiten nml. ;)
zie je dat echt niet?
$pach, dan een "/" en dan de filename
je geeft dus gewoon de filename met volledig path op :)
Ja weet ik, maar ik vind het gewoon handig en leuk om het zo te schrijven... ook als er dan een index in de map staat, kan ik toch nog de inhoud afzonderlijk gaan doorkijken en niet altijd naar die index gestuurd worden.
Bovendien ziet deze er veel flexer uit 8-) (lees: shiny winXP icons, wat wil een meisje nog meer :P)

Bovendien spijker ik mijn php-kennis zo weer een beetje bij :)
je kan ook gewoon de plaatjes van apache vervangen, of in de config een andere dir opgeven
en dat je automatisch naar de index.html/index.php gaat, kan je met .htaccess ook wel opvangen denk ik...

"Happiness is a way of travel, not a destination."
--Roy Goodman


  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 23-08 22:18

Dark Blue

Compositionista!

Alpenmeisje

Topicstarter
Op maandag 17 juni 2002 14:13 schreef Flat© het volgende:

[..]

zie je dat echt niet?
$pach, dan een "/" en dan de filename
je geeft dus gewoon de filename met volledig path op :)
[..]

je kan ook gewoon de plaatjes van apache vervangen, of in de config een andere dir opgeven
en dat je automatisch naar de index.html/index.php gaat, kan je met .htaccess ook wel opvangen denk ik...
ph34r me, ik ben een PHP n00b die er af en toe van Papa Eend wat bij leert... ik heb Basic ooit gehad dus ik kan structuren herkennen enzo, maar als ik van zo'n functie niet weet wát ie precies doet ben ik allang blij als hij doet wat ik wil zonder moeilijk te doen.

Ja, ik kan die dingen van Apache vervangen enzo, maar het gaat me hier ff om een remote server...niet mn eigen pc.
En de mappen die ik wil inzien wil ik niet allemaal met .htaccess beveiligen daar het o.a. ook om mijn website gaat en die moet natuurlijk wel direct toegankelijk blijven ;)

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs

Pagina: 1