beste mensen,
ik gebruik het script dir uitlezen en linken op mijn pagina, welk script ik dus op deze site heb gevonden => scripts
het script bevat de volgende code:
<?
$dir = "/var/www/directory"; // de directory die hij uit moet lezen
$exten = 'html'; // de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{
while (false !== ($file = @readdir($handle))) {
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
if($ext['extension'] == $exten)
{
echo " • <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
}
}
@closedir($handle);
}
?>
nu is het rare dat het script het in de ene dir wel doet en en de andere dir niet
In deze dir werkt het script niet:
<?
$dir = "C:/inetpub/Map1/Vergaderingen/Test";
?>
Notice: Undefined index: extension in C:\Inetpub\Map1\Notulen\actielijst.php on line 35
en in deze dir werkt het script wel terwijl deze dir nog een map dieper van de root zit
<?
$dir = "C:/inetpub/Map1/Vergaderingen/Test/Map2";
?>
wie kan mij uitleggen hoe dit komt en hoe ik het misschien kanverhelpen
Ik gok dat je de eerste keer geen waarde terugkrijgt van pathinfo. Dan bestaat er geen array $ext en dus ook geen index 'extension'
[edit]
uitbreiding:
[/edit]
Zo kun je het ondervangen:
<?
$dir = "/var/www/directory"; // de directory die hij uit moet lezen
$exten = 'html'; // de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{
while (false !== ($file = @readdir($handle))) {
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
if(is_array ($ext) && $ext['extension'] == $exten)
{
echo " • <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
}
}
@closedir($handle);
}
?>
@SanThe
in de map test staan wel degelijk bestanden en nog die ik zoek ook :)
als het het script nog verder laat door zoeken dus in map2 waar die bestanden niet staan geeft hij geen melding.
@jan
ik ga is met je script aan de slag
EDIT:
hij geeft wel weer wat er weergegeven moet worden alleen blijft hij ook die notice weergeven :(
Nog een kleine aanpassing:
<?php
$dir = "/var/www/directory"; // de directory die hij uit moet lezen
$exten = 'html'; // de extensie die hij weer moet geven
if ($handle = @opendir($dir))
{
while (false !== ($file = @readdir($handle))) {
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
if(isset ($ext) && is_array ($ext) && $ext['extension'] == $exten)
{
echo " • <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
}
}
@closedir($handle);
}
?>
Als ik het lokaal test, lukt het alleen met een abolute verwijzing. Probeer eens zo:
<?php
error_reporting (E_ALL);
$dir = 'http://www.jouwsite.nl/directory';; // de directory die hij uit moet lezen. NIET eindigen met een slash
$exten = 'html'; // de extensie die hij weer moet geven
if ($handle = opendir($dir))
{
while (false !== ($file = readdir($handle))) {
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
if(isset ($ext) && is_array ($ext) && $ext['extension'] == $exten)
{
echo " • <a href='/module/". $file ."' target='_blank'>". basename($file, ".php") ."</a><br>" ;
}
}
closedir($handle);
}
?>
Warning: opendir(http://www.pagina.local/Vergaderingen/test) [function.opendir]: failed to open dir: not implemented in C:\Inetpub\pagina\Notulen\overzicht.php on line 33
als ik de @ voor opendir() en readdir() zet verschijnt de error niet maae dan heb ik logisch ook geen resultaat