Directory en Subdirectory naar mysql
Ik zoek een script dat vanaf een bepaalde map (bijvoorbeeld /var/www/) alle bestanden in een Mysql database zet en in een apart veld ook de map dus bijvoorbeeld
mijn map structuur van /var/www/ is zo:
Quote:
map1
map2
file1.ext
file2.ext
map2
file1.ext
file2.ext
Dan wil ik dat het script in de database zet:
Quote:
file1.ext /var/www/
file2/ext /var/www/
file2/ext /var/www/
Vervolgens moet hij verder gaan in map 1 en zo voort.
Weet iemand hier iets moois voor?
Groetjes,
Jos
http://www.php.net/manual/en/function.scandir.php
In de comments staat al een recursive functie.
De vraag is waarom wil je dit in een database zetten?
In de comments staat al een recursive functie.
De vraag is waarom wil je dit in een database zetten?
Omdat het gaat om wat muziek die op een site staat en ik op deze manier tog makkelijk een overzicht kan maken ik kan mensen de database door laten zoeken etc
Dat zou ik anders doen. Ik zou de muziekbestanden uploaden via PHP en de locatie van het bestand opslaan in een database. Zo kun je namelijk meer informatie aan een bestand koppelen. Denk aan een titel, omschrijving of een plaatje van een cd hoes of iets dergelijks.
Begrijpelijk maar ik heb al so 7000 liedjes en om die nou 1 voor 1 te gaan uploaden heb ik ook niet so zin in..
tevens kun je beter glob() gebruiken in plaats van scandir. Deze is namelijk sneller.
Maar nu gaat het er dus om ik wil ook een zoek formulier maken waar mensen door die bestanden kunnen zoeken. Dus wat eigenlijk helemaal super zou zijn is als ik een script heb die al mijn muziek (inclusief wat in subfolders staat) in een databse zou zetten en van de mp3 tag ook er bij jou zetten!
Jouw probleem is dus... je hebt 7000 liedjes in je map(pen) staan en de naam van elk liedje moet in een database komen? vermoedelijk zoek je dan iets in de richting van readdir.
Ik zou gewoon een script maken die alle gegevens in de database stopt. deze laat je dan eenmalig lopen om alle gegevens op te slaan.
Onderstaande script is voor afbeeldingen maar het is niet zo moeilijk om deze om te bouwen. Je zult geen script vinden die 100% aan je wensen voldoet ben ik bang.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<?php
/*--------------------------------------------------------------------------------------------------------------------------
(§) Settings.
--------------------------------------------------------------------------------------------------------------------------*/
#| De locatie van de te doorzoeken map.
$location = '';
#| We zoeken alleen afbeeldingen dus alleen de volgende extensies worden toegestaan.
$extensions = array('png', 'jpg');
/*--------------------------------------------------------------------------------------------------------------------------
(§) Defaults.
--------------------------------------------------------------------------------------------------------------------------*/
#| Set " $images " array voor het opslaan van de afbeeldingen.
$images = array();
/*--------------------------------------------------------------------------------------------------------------------------
(§) Bestanden ophalen en de afbeeldingen eruit filteren.
--------------------------------------------------------------------------------------------------------------------------*/
#| Alle bestanden ophalen
$files = glob($location.'*.*');
#| Eerst kijken we of er wel wat is gevonden.
if(!empty($files)){
/*---- INFO: Ja, Er zijn 1 of meerdere bestanden gevonden. ----*/
#| Alle gevonden bestanden doorlopen.
foreach($files as $file){
#| Informatie over het bestand ophalen.
$info = pathinfo($file);
if(in_array($info['extension'], $extensions)){
$images[$file] = $info;
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Demo :: Image viewer.</title>
</head>
<body>
<?php
if(!empty($images)){
foreach($images as $img => $info){
echo '<img src="'.$img.'">';
}
}
else{
echo 'Geen afbeeldingen gevonden.';
}
?>
</body>
</html>
/*--------------------------------------------------------------------------------------------------------------------------
(§) Settings.
--------------------------------------------------------------------------------------------------------------------------*/
#| De locatie van de te doorzoeken map.
$location = '';
#| We zoeken alleen afbeeldingen dus alleen de volgende extensies worden toegestaan.
$extensions = array('png', 'jpg');
/*--------------------------------------------------------------------------------------------------------------------------
(§) Defaults.
--------------------------------------------------------------------------------------------------------------------------*/
#| Set " $images " array voor het opslaan van de afbeeldingen.
$images = array();
/*--------------------------------------------------------------------------------------------------------------------------
(§) Bestanden ophalen en de afbeeldingen eruit filteren.
--------------------------------------------------------------------------------------------------------------------------*/
#| Alle bestanden ophalen
$files = glob($location.'*.*');
#| Eerst kijken we of er wel wat is gevonden.
if(!empty($files)){
/*---- INFO: Ja, Er zijn 1 of meerdere bestanden gevonden. ----*/
#| Alle gevonden bestanden doorlopen.
foreach($files as $file){
#| Informatie over het bestand ophalen.
$info = pathinfo($file);
if(in_array($info['extension'], $extensions)){
$images[$file] = $info;
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Demo :: Image viewer.</title>
</head>
<body>
<?php
if(!empty($images)){
foreach($images as $img => $info){
echo '<img src="'.$img.'">';
}
}
else{
echo 'Geen afbeeldingen gevonden.';
}
?>
</body>
</html>
Als je het zelf wilt maken, kijk naar glob, haal de resultaten op, kijk of het een mp3 of een map is en als het een map is ga je er in verder (recursief).
http://s23.org/wiki/HowTo/Read_Mp3_ID3_tags_into_Sql_Database
Aangezien mijn server toch op linux draait ga ik het proberen want volgens mij is het bijna presies wat ik zoek