<?php
// Folder naar de bestanden
$folder = 'path/naar/folder';
// Controleer dat de folder bestaat
trim($folder, '/');
if (!is_dir($folder)){
print 'Het pad naar "'.$folder.'" kan niet worden gevonden';
} else {
// Start het maken van de query
$values = '';
// Uitlezen van folder
foreach (glob($folder.'/*.*') as $file) {
// Ophalen van extentie doen we met explode
$exp = explode('.', $file);
$ext = end($exp);
// Ophalen van grootte
$filesize = filesize($file);
// Ophalen van filename
$filename = $file;
$filename = str_replace('.'.$ext, '', $filename);
$filename = str_replace($folder.'/', '', $filename);
// Toon de gegevens
print 'Filename: '.$filename.'<br>';
print 'Extentie: '.$ext.'<br>';
print 'Filesize: '.$filesize.' bytes<hr>';
// Bouw de query
if (!empty($values)){ $values .= ", "; }
$values .= "(NULL, '".$filename."', '".$ext."', '".$filesize."')";
}
// Afwerken van de query
$query = "INSERT INTO music (id, filename, extentie, filesize) VALUES ".$values;
// Toon de query
print 'Query: '.$query;
}
?>
<?php
// Folder naar de bestanden
$folder = 'path/naar/folder';
// Controleer dat de folder bestaat
trim($folder, '/');
if (!is_dir($folder)){
print 'Het pad naar "'.$folder.'" kan niet worden gevonden';
} else {
// Start het maken van de query
$values = '';
// Uitlezen van folder
foreach (glob($folder.'/*.*') as $file) {
// Ophalen van extentie doen we met explode
$exp = explode('.', $file);
$ext = end($exp);
// Ophalen van grootte
$filesize = filesize($file);
// Ophalen van filename
$filename = $file;
$filename = str_replace('.'.$ext, '', $filename);
$filename = str_replace($folder.'/', '', $filename);
// Toon de gegevens
print 'Filename: '.$filename.'<br>';
print 'Extentie: '.$ext.'<br>';
print 'Filesize: '.$filesize.' bytes<hr>';
// Bouw de query
if (!empty($values)){ $values .= ", "; }
$values .= "(NULL, '".$filename."', '".$ext."', '".$filesize."')";
}
// Afwerken van de query
$query = "INSERT INTO music (id, filename, extentie, filesize) VALUES ".$values;
// Toon de query
print 'Query: '.$query;
}
?>
Geweldig, de query werkt! duizend keer bedankt!
Ik heb wel nog een probleem...
Om de sync te vervolledigen moet ik:
1. Controleren of de filename niet al bestaat want hij blijf ze dubbel toevoegen
2. De files die weg zijn uit de directory moet hij ook schrappen uit de database
Ik heb reeds vanalles geprobeerd maar ik geloof dat ik hier nog even vast zit:
Als ik een echo van $filename doe dan krijg ik iets raars:
bijvoorbeeld:
echo of filename:Resource id #12
door dat de filename een rare inhoud heeft kan ik mijn functies niet uitvoeren...
[quote="G P op 25/10/2014 18:32:28"]
Hier een voorbeeld scriptje
<?php
// Folder naar de bestanden
$folder = 'path/naar/folder';
// Controleer dat de folder bestaat
trim($folder, '/');
if (!is_dir($folder)){
print 'Het pad naar "'.$folder.'" kan niet worden gevonden';
} else {
// Start het maken van de query
$values = '';
// Uitlezen van folder
foreach (glob($folder.'/*.*') as $file) {
// Ophalen van extentie doen we met explode
$exp = explode('.', $file);
$ext = end($exp);
// Ophalen van grootte
$filesize = filesize($file);
// Ophalen van filename
$filename = $file;
$filename = str_replace('.'.$ext, '', $filename);
$filename = str_replace($folder.'/', '', $filename);
// Toon de gegevens
print 'Filename: '.$filename.'<br>';
print 'Extentie: '.$ext.'<br>';
print 'Filesize: '.$filesize.' bytes<hr>';
// Bouw de query
if (!empty($values)){ $values .= ", "; }
$values .= "(NULL, '".$filename."', '".$ext."', '".$filesize."')";
}
// Afwerken van de query
$query = "INSERT INTO music (id, filename, extentie, filesize) VALUES ".$values;
// Toon de query
print 'Query: '.$query;
}
?>
Geweldig, de query werkt! duizend keer bedankt!
Ik heb wel nog een probleem...
Om de sync te vervolledigen moet ik:
1. Controleren of de filename niet al bestaat want hij blijf ze dubbel toevoegen
2. De files die weg zijn uit de directory moet hij ook schrappen uit de database
Ik heb reeds vanalles geprobeerd maar ik geloof dat ik hier nog even vast zit:
Als ik een echo van $filename doe dan krijg ik iets raars:
bijvoorbeeld:
echo of filename:Resource id #12
door dat de filename een rare inhoud heeft kan ik mijn functies niet uitvoeren...
Kan je mij in de juiste richting wijzen aub?
nogmaals super bedankt voor de hulp!
[/quote]
Woops, ik vond het net nog op het laatste moment, ik deel het hier even zodat iemand anders dit ook kan gebruiken:
De query pas je aan van:
...INSERT INTO....
naar:
...INSERT IGNORE INTO...
zo slaat hij de records over die dubbel zijn.
Zorg er wel voor dat de sql row een UNIQUE heeft of hij zal gewoon verder dubbele records plaatsen!
Wat nu als de file heet /eenfolder/een.classname.class
dan replace-t de 2e regel 2x ".class" uit de filename.....
Ga daarom liever voor functies van php die precies doen wat je wilt bereiken. Bijvoorbeel pathinfo() of basename() oid.
Lijkt vaak precies op wat je met de nodige str_replace aanroepen ook kunt bereiken, maar dan is er net wat langer over nagedacht en getest.