Localhost
Hallo,
Ik had een vraag. Ik heb namelijk een script die alle mappen uit de zelfde directory laat zien en er een hyperlink van maakt:
Nu wou ik graag het rangschikken op de beginletter (functie: substr($file, 0, 1)).
Nu krijg ik dus boven elke map de beginletter te zien. Deze beginletter mag natuurlijk maar 1x laten zien worden. Het eindresultaat zou zoiets moeten komen er uit te zien:
A
-----------------------
aiddblabla
alibi
allemaal
B
----------------------
Boom
b...
C
----------------------
Citroen
Cinema
etc.etc.
Alvast hartelijk dank,
Melroy van den Berg
Ik had een vraag. Ik heb namelijk een script die alle mappen uit de zelfde directory laat zien en er een hyperlink van maakt:
Code (php)
Nu wou ik graag het rangschikken op de beginletter (functie: substr($file, 0, 1)).
Nu krijg ik dus boven elke map de beginletter te zien. Deze beginletter mag natuurlijk maar 1x laten zien worden. Het eindresultaat zou zoiets moeten komen er uit te zien:
A
-----------------------
aiddblabla
alibi
allemaal
B
----------------------
Boom
b...
C
----------------------
Citroen
Cinema
etc.etc.
Alvast hartelijk dank,
Melroy van den Berg
Gewijzigd op 01/01/1970 01:00:00 door Melroy van den Berg
ok eens zien :)
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
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
<?php
if ($dir = @opendir(".")) {
while (false!==($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[] = $file;
}
}
closedir($dir);
}
//file_array orderen op alfabet =>
sort($file_array);
reset($file_array);
$tmp_first_letter = "";
foreach ($file_array as $file) {
$first_letter = strtolower(substr($file, 0, 1));
if ($first_letter != $tmp_first_letter) {
echo "<br><B>".$first_letter."</B><hr>";
$tmp_first_letter = $first_letter;
}
echo $file;
}
?>
edit => ; vergeten
tmp_first_letter uit de foreach gegooid sry
if ($dir = @opendir(".")) {
while (false!==($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[] = $file;
}
}
closedir($dir);
}
//file_array orderen op alfabet =>
sort($file_array);
reset($file_array);
$tmp_first_letter = "";
foreach ($file_array as $file) {
$first_letter = strtolower(substr($file, 0, 1));
if ($first_letter != $tmp_first_letter) {
echo "<br><B>".$first_letter."</B><hr>";
$tmp_first_letter = $first_letter;
}
echo $file;
}
?>
edit => ; vergeten
tmp_first_letter uit de foreach gegooid sry
Gewijzigd op 01/01/1970 01:00:00 door Sab Kriksdeegir
Ik vind het een beetje rare code...
probeer sowieso dit eens.
probeer sowieso dit eens.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
if ($dir = @opendir(".")) {
//while (false!==($file = readdir($dir))) { // is gelijk aan $file = readdir($dir)
// dus:
$files = array();
while($file = readdir($dir)) {
// nu gaan we alles in een array douwen
if ($file != "." && $file != "..") {
array_push($files, $file);
}
}
sort($files);
// bestanden zijn nu gesorteerd op alfabetische volgorde
foreach($files as $key => $waarde) {
// nu moeten we dus kijken bij welke waarde hij hoort...
// wat een oplossing kan zijn een multidemensionale array. Maar dat moet makkelijker kunnen.
// Dus ik laat het even open
}
closedir($dir);
}
?>
if ($dir = @opendir(".")) {
//while (false!==($file = readdir($dir))) { // is gelijk aan $file = readdir($dir)
// dus:
$files = array();
while($file = readdir($dir)) {
// nu gaan we alles in een array douwen
if ($file != "." && $file != "..") {
array_push($files, $file);
}
}
sort($files);
// bestanden zijn nu gesorteerd op alfabetische volgorde
foreach($files as $key => $waarde) {
// nu moeten we dus kijken bij welke waarde hij hoort...
// wat een oplossing kan zijn een multidemensionale array. Maar dat moet makkelijker kunnen.
// Dus ik laat het even open
}
closedir($dir);
}
?>
Jason => rare code ?
is gewoon een flag variable in je script gooien ;)
stel je hebt
ahha => tmp_first_letter = A => header printen
abba => tmp_first_letter = A => header niet printen
abbc => tmp_first_letter = A => header niet printen
bbba => tmp_first_letter = B => header printen
Ceret => tmp_first_letter = C => header printen
is gewoon een flag variable in je script gooien ;)
stel je hebt
ahha => tmp_first_letter = A => header printen
abba => tmp_first_letter = A => header niet printen
abbc => tmp_first_letter = A => header niet printen
bbba => tmp_first_letter = B => header printen
Ceret => tmp_first_letter = C => header printen
Bedankt.
Maar.. :(
@Tommy bij jouw script
Eerst sorteerde hij eerst beter op alfabet? En ik krijg boven elke map met een beginletter a een a te zien.
Oftewel:
a
-----------------------------------------------------
admin
a
-----------------------------------------------------
apache
a
-----------------------------------------------------
alfa
In plaats van:
a
-----------------------------------------------------
admin
apache
alfa
enz.
Maar.. :(
@Tommy bij jouw script
Eerst sorteerde hij eerst beter op alfabet? En ik krijg boven elke map met een beginletter a een a te zien.
Oftewel:
a
-----------------------------------------------------
admin
a
-----------------------------------------------------
apache
a
-----------------------------------------------------
alfa
In plaats van:
a
-----------------------------------------------------
admin
apache
alfa
enz.
Gewijzigd op 01/01/1970 01:00:00 door Melroy van den Berg
ik zie het al. $tmp_first_letter zat in de lus en kreeg altijd = "" mee aan het begin van de lus. Gewoon buiten de lus gooien en alles werkt ok !
zie edit !
zie edit !
Gewijzigd op 01/01/1970 01:00:00 door Sab Kriksdeegir
bedankt!
Raar genoeg moest ik sort() en reset() uitschakelen, want daardoor werkt het juist niet alfabetisch gesorteerd? (geen idd wat hij dan wel deed?)
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if ($dir = @opendir(".")) {
while (false!==($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[] = $file;
}
}
closedir($dir);
}
//sort($file_array);
//reset($file_array);
$tmp_first_letter = "";
foreach ($file_array as $file) {
$first_letter = strtolower(substr($file, 0, 1));
if ($first_letter != $tmp_first_letter) {
echo "<br><B>".$first_letter."</B><hr>";
$tmp_first_letter = $first_letter;
}
echo "<a href='".$file."'>".$file."</a><BR>";
}
?>
if ($dir = @opendir(".")) {
while (false!==($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[] = $file;
}
}
closedir($dir);
}
//sort($file_array);
//reset($file_array);
$tmp_first_letter = "";
foreach ($file_array as $file) {
$first_letter = strtolower(substr($file, 0, 1));
if ($first_letter != $tmp_first_letter) {
echo "<br><B>".$first_letter."</B><hr>";
$tmp_first_letter = $first_letter;
}
echo "<a href='".$file."'>".$file."</a><BR>";
}
?>
Raar genoeg moest ik sort() en reset() uitschakelen, want daardoor werkt het juist niet alfabetisch gesorteerd? (geen idd wat hij dan wel deed?)
nu ja :)
Het werkt...
kan met een gerust hart gaan slapen :)
enjoy the script ;)
Het werkt...
kan met een gerust hart gaan slapen :)
enjoy the script ;)
Inderdaad...
Bedankt :)
Bedankt :)
Whaha, Tommy, mijnes is vier regels korter :)
@Melroy: dit is ook een handige methode, mijns inziens ;)
@Melroy: dit is ook een handige methode, mijns inziens ;)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if ($dir = @opendir(".")) {
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[ucfirst(substr($file, 0, 1))][] = $file;
}
}
closedir($dir);
}
ksort($file_array);
foreach ($file_array as $letter => $woorden) {
echo '
<h2>'.$letter.'</h2>
<hr />
'.implode('<br />'.PHP_EOL, $woorden);
}
?>
if ($dir = @opendir(".")) {
while (false !== ($file = readdir($dir))) {
if ($file != "." && $file != "..") {
$file_array[ucfirst(substr($file, 0, 1))][] = $file;
}
}
closedir($dir);
}
ksort($file_array);
foreach ($file_array as $letter => $woorden) {
echo '
<h2>'.$letter.'</h2>
<hr />
'.implode('<br />'.PHP_EOL, $woorden);
}
?>
edit: laat maar
Gewijzigd op 01/01/1970 01:00:00 door Marvin S
Domme vraag maar waarom onderdrukt voor zover ik heb gezien iedereen bij open dir zijn errors?




