Gå til innhold

[LØST]liste opp antall filer i en mappe ?


Anbefalte innlegg

Hei, er det noen som vet hva php koden for å telle antall filer i en mappe og skrive dem ut ?

skulle gjerne hatt det til et profil script, der alle profiler ligger i en mappe, og da kan jeg enkelt bare skrive "det er 'antall' profiler på siden" ?

 

På forhånd takk for svar..

Endret av stianiquniez
Lenke til kommentar
Videoannonse
Annonse

I hovedsak bruker du count() for å telle antall ting, men det må litt mer til for

å finne ut hvor mange filer som ligger i en mappe. Prøv å les litt på php.net også, der ligger det nok noe :)

 

Edit: Skrev noe raskt. Visning av filene får du nesten finne ut selv, skal ike være noe problem nå :)

<?php

$path = "mappe";
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path."/".$file) && $file != "." && $file != "..") {
 $extension = explode(".",$file);
 $extension_i = (count($extension) - 1);
 $ext = $extension[$extension_i];
 if ($ext == true) {
 	$profiles[$files] = $file;
 	$files++;
 }
}
}
echo "<p>Det er $files profiler i mappen</p>";
?>

Endret av Jibril2k
Lenke til kommentar

Hvordan kan jeg chmode filer via xampp ?

eller gjøres det automatisk, kjører alle disse scriptene på pc. holder på med en side som skal bli lagt ut, så kjører ikke på nett ?

noen som vet, for med det scriptet Jibril2k så kom følgende feilmelding:

 

 

Warning: opendir(profil) [function.opendir]: failed to open dir: Invalid argument in D:\Programfiler\xampp\htdocs\home\inc\profil.php on line 16

 

Warning: readdir(): supplied argument is not a valid Directory resource in D:\Programfiler\xampp\htdocs\home\inc\profil.php on line 17

 

Det er 4 profiler i mappen

Lenke til kommentar

En enklere løsning er å bruke glob() sammen med count().

 

Koden vil da se slik ut:

<?php
$profiles_dir = "/sti/til/profiler/";
$files = count(glob("{$profiles_dir}*"));
print("<p>Det er {$files} profiler i mappen.</p>");
?>

 

Du har også muligheten for å velge hvilke filer den skal lete etter. Det gjør du ved å endre "*" til for eksempel "*.php". Denne forandringen gjør at undermapper ikke blir regnet med i resultatet. En annen løsning for å fjerne undermapper er følgende kode:

<?php
$profiles_dir = "/sti/til/profiler/";
$files = count(glob("{$profiles_dir}*")) - count(glob("{$profiles_dir}*", GLOB_ONLYDIR));
print("<p>Det er {$files} profiler i mappen.</p>");
?>

Lenke til kommentar

Nei, jeg måtte ikke chmodde noen ting, så det er litt merkelig at den ikke fungerer. Du skrev bare inn mappenavnet, ikke sant, ikke full sti til mappen? Kunne kanskje hjulpet å se koden din.Kan sikkert ta det over PM hvis du ikke vil vise den her.

 

Ang. tilkobling til FTP på localhost må du vel skru på FTPen som følger med xampp, koble deg til localhost som server, og evt. brukernavn og passord du har på serveren.

Lenke til kommentar

Slik ser koden min ut komplett

 

<?php
$p = $_GET['id'];
if (!empty($p)) {
if (file_exists("inc/profil/$p.php")) include "inc/profil/$p.php";
else echo "finner ikke profil";
}
else {
echo "venligst velg profil <br /><a href=\"index.php?page=profil&msg=antall\">Vis antall profiler</a><br/>";
}
if ($_GET['msg']=="antall") {
$path = "profil";
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path."/".$file) && $file != "." && $file != "..") {
$extension = explode(".",$file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == true) {
 $profiles[$files] = $file;
 $files++;
}
}
}
echo "<p>Det er $files profiler i mappen</p>";
}
?>

Lenke til kommentar

Aha, det funker jo flotters dette her, nå har jeg fått liste over alle filene, uten .php

 

men sist. (hehe, skal prøve og ikke mase mer nå^^ )

finnes det noen måte jeg kan legge link på alle navnene,

blir slik

 

<a href="index.php?page=profil&id=meg">meg</a><br />
<a href="index.php?page=profil&id=deg">deg</a><br />
<a href="index.php?page=profil&id=andre">andre</a><br />

Endret av stianiquniez
Lenke til kommentar

slik ser koden min ut :

<?php
$p = $_GET['id'];
if (!empty($p)) {
if (file_exists("inc/profil/$p.php")) include "inc/profil/$p.php";
else echo "finner ikke profil";
}
//KOMMET OPP OM DET IKKE ER VALGT NOEN PROFIL
else {
echo "venligst velg profil<br /><br />";

$path = "inc/profil";
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path."/".$file) && $file != "." && $file != "..") {
$extension = explode(".",$file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == true) {
 $profiles[$files] = $file;
 $files++;
}
}
}
echo "Det er $files profiler på serveren.<br />";
echo "<b>og det er </b><br />";
if ($handle = opendir('./inc/profil')) {
  while (false !== ($file = readdir($handle))) {
      if ($file != "." && $file != "..") {
$rest = substr("$file\n", 0, -5);  
echo "$rest<br />";
      }
  }
  closedir($handle);
}
}
?>

så det må bli noe i echo " $rest "; men vet ikke hvordan jeg skal skrive det, er litt ny med php ^^

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...