Ik vraag met het volgende script de bestanden uit een dir.
Dat werkt goed.
Maar hij geeft twee extra aanvullingen met als inhoud '.' en '..''
Ik heb uiteraard alleen de gewone inhoud nodig.
Iemand een idee?


Array
(
    [1] => 1499201649
    [4] => 1499201341
    [6] => 1499201185
    [2] => 1499200962
    [3] => 1499197830
    [5] => ..
    [0] => .
)



<?php
$d = "youtube-images/";
$files = array();

if(!is_dir($d)){
echo "geen gegevens";
}
else
{
$dir = opendir($d);
while ($f = readdir($dir)){
$f = substr($f,0,10);
array_push($files,"$f");
}
}

arsort($files, SORT_NATURAL | SORT_FLAG_CASE);

foreach ($files as $key => $val) {
    echo "files[" . $key . "] = " . $val . "\n";
}
?>
In je code gewoon doorgaan als de gevonden naam . of .. is, dus binnen je while ($f = readdir.... etc.
Dank jullie voor de reactie.
Dacht wel dat het zoiets zou zijn.
Maar wat ik ook wijzig.. Of hij zegt 'geen inhoud' of alles blijft leeg.
Deze heb ik geprobeerd te gebruiken:


$newdir = array_diff(scandir($d), array('..', '.'));


$files = array_slice(scandir($d), 2);

Je hebt helemaal geen scandir in je geposte code, dus waar je nu precies mee bezig bent volg ik totaal niet.
ik heb die twee opties in mijn script verwerkt op verschillende manieren...
Maar had verkeerde uitwerking telkens...
Maar dit lijkt nu te werken:


if ($f != '.' && $f != '..')
{
array_push($files,"$f");
}

Zucht. Blijf gewoon bij 1 manier en probeer dat werkend te krijgen. Je moet niet constant andere dingen gaan doen, dan raak je ontzettend snel het overzicht kwijt.

<?php
$d = "youtube-images/";
$files = array();

if(!is_dir($d)) {
echo "geen gegevens";
} else {
$dir = opendir($d);
while ($f = readdir($dir)){
if ($f == '.' || $f == '..')
continue;
}
$f = substr($f,0,10);
array_push($files,"$f");
}
}

arsort($files, SORT_NATURAL | SORT_FLAG_CASE);

foreach ($files as $key => $val) {
echo "files[" . $key . "] = " . $val . "\n";
}
?>

<?php
$allFiles = scandir(__DIR__); // Vul map in 
$files = array_diff($allFiles, array('.', '..'));
?>
Het werkt nu zoals ik het heb aangegeven.
Het stukje van Ben ook gekopieerd en geplakt, maar doet het (nog) niet.
Maar ik ben tevreden.. Bedankt voor jullie reacties.

Reageren