Bekijk Volledige Versie : PHP: dir inlezen
Hallo,
onderstaand PHP-scriptje gebruik ik om de
bestanden in de dir 'upload' te laten inlezen
en er links van te maken
het werkt naar behoren, maar ...
het laat alle bestanden (php, txt, htm, ...) zien
en de bedoeling is om enkel de PHP-bestanden
in die dir 'upload' te laten zien als een link
wat moet er aan het scriptje toegevoegd worden
zodat enkel alle PHP-bestanden in die dir
in de lijst voorkomen ?
(met uitzondering van het bestand zelf
en dit bestandje noemt index.php)
<knip html-code>
<?php
$handle=opendir('../upload');
while (false !== ($file = readdir($handle))){
if(($file == ".") OR ($file == "..")){continue;}
echo '<a href="/upload/'.$file.'">'.$file.'</a>';
}
closedir($handle);
?>
<knip html-code>
veel dank op voorhand
Gina
Branko Collin
05/04/06, 11:40
On Wed, 05 Apr 2006 01:03:25 GMT, "Gina" <99999@telenetSPAM.be> wrote:
>wat moet er aan het scriptje toegevoegd worden
>zodat enkel alle PHP-bestanden in die dir
>in de lijst voorkomen ?
>(met uitzondering van het bestand zelf
>en dit bestandje noemt index.php)
>
><knip html-code>
><?php
>$handle=opendir('../upload');
>while (false !== ($file = readdir($handle))){
> if(($file == ".") OR ($file == "..")){continue;}
> echo '<a href="/upload/'.$file.'">'.$file.'</a>';
>}
>closedir($handle);
>?>
><knip html-code>
Om te beginnen zul je moeten weten wat je verstaat onder een
PHP-bestand. Het makkelijkst is als je genoegen neemt met die
bestanden waarvan de bestandsnaamextensie met "php" begint, want daar
is het makkelijkst op te testen.
if(($file == ".") OR ($file == "..")){continue;}
wordt dan bijvoorbeeld
if(($file == ".") OR ($file == "..") OR
(preg_match('/\.php[^.]*$/',$file) !== false)){continue;}
(Da's één regel, maar mijn newsclient breekt hem af; wijziging niet
gestest.)
De regex is uit mijn hoofd, en zou iets moeten betekenen als:
\. een punt
php gevolgd door PHP
[^.]* gevolgd door nul of meer andere tekens, zo lang het maar geen
punten zijn
$ aan het einde van de bestandsnaam
| >wat moet er aan het scriptje toegevoegd worden
| >zodat enkel alle PHP-bestanden in die dir
| >in de lijst voorkomen ?
| >(met uitzondering van het bestand zelf
| >en dit bestandje noemt index.php)
| >
| ><knip html-code>
| ><?php
| >$handle=opendir('../upload');
| >while (false !== ($file = readdir($handle))){
| > if(($file == ".") OR ($file == "..")){continue;}
| > echo '<a href="/upload/'.$file.'">'.$file.'</a>';
| >}
| >closedir($handle);
| >?>
| ><knip html-code>
| Om te beginnen zul je moeten weten wat je verstaat onder een
| PHP-bestand. Het makkelijkst is als je genoegen neemt met die
| bestanden waarvan de bestandsnaamextensie met "php" begint, want daar
| is het makkelijkst op te testen.
|
| if(($file == ".") OR ($file == "..")){continue;}
|
| wordt dan bijvoorbeeld
|
| if(($file == ".") OR ($file == "..") OR
| (preg_match('/\.php[^.]*$/',$file) !== false)){continue;}
|
| (Da's één regel, maar mijn newsclient breekt hem af; wijziging niet
| gestest.)
|
| De regex is uit mijn hoofd, en zou iets moeten betekenen als:
|
| \. een punt
| php gevolgd door PHP
| [^.]* gevolgd door nul of meer andere tekens, zo lang het maar geen
| punten zijn
| $ aan het einde van de bestandsnaam
ja, dat bedoelde ik:
de bestanden met de extentie PHP
enkel die zouden zichtbaar moeten zijn
maar met uitzondering van index.php
nu, met het script dat ik reeds gebruik,
zijn ook de bestanden met de extentie htm, txt, ... enz zichtbaar
ik heb uw aanpassing geprobeerd en ...
dan is er niets meer zichtbaar
gina
Nico Schuyt
05/04/06, 21:40
Gina wrote:
> wat moet er aan het scriptje toegevoegd worden
> zodat enkel alle PHP-bestanden in die dir
> in de lijst voorkomen ?
> (met uitzondering van het bestand zelf
> en dit bestandje noemt index.php)
<?php
$handle=opendir('../upload');
while (false !== ($file = readdir($handle))){
if(($file == ".") OR ($file == "..") OR !strpos($file,'.php')){continue;}
echo '<a href="upload'.$file.'">'.$file.'</a>';
}
closedir($handle);
?>
--
Nico Schuyt
http://www.nicoschuyt.nl/
| > wat moet er aan het scriptje toegevoegd worden
| > zodat enkel alle PHP-bestanden in die dir
| > in de lijst voorkomen ?
| > (met uitzondering van het bestand zelf
| > en dit bestandje noemt index.php)
| if(($file == ".") OR ($file == "..") OR !strpos($file,'.php')){continue;}
dit doet het
ik heb er nog wat aan toegevoegd
namelijk het verbergen van index.php
if(($file == ".") OR ($file == "..") OR ($file == 'index.php') OR
!strpos($file,'.php')){continue;}
ik zie nu enkel alle php-bestanden
met uitzondering van index.php
nico, hartelijk dank om mij op de goede weg te zetten
gina
Branko Collin
05/04/06, 23:00
On Wed, 05 Apr 2006 17:02:22 GMT, "Gina" <99999@telenetSPAM.be> wrote:
>ik heb uw aanpassing geprobeerd en ...
>dan is er niets meer zichtbaar
Sorry, ik had de vraag verkeerd gelezen. Mijn wijziging liet juist de
..php-bestanden niet zien.