/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Links igen!
Fra : Øystein Håland


Dato : 20-07-01 09:22

Är spörsmålet så triviellt här att ingen gidder å svare. Vel, jeg har jobba
på saken sjöl under tida og her er resultatet so far:

$action=opendir("$fil");
while ($fil = readdir($action)){
if ($fil == ".") { continue; }
if ($fil == "..") { continue; }
if(is_file($fil)) {
$text = ucfirst ($fil);
$text = str_replace (array('ae','Ae','aa','Aa','oe','Oe'),
array('ä','Ä','å','Å','ö','Ö'), $text);
$text = substr_replace ($text,'',-4);
echo " <a href='$fil'>";
// $string = $text;
$tok = strtok ($text,"_");
while ($tok) {
echo "$tok ";
$tok = strtok ("_");
}
echo "</a> ";
}
}
Med hjälp av dette (men det ser jo dere guruer med en gang!) så lenker jeg
till alle filer i samme mappe uten den egne (nej fan, den har visst fallt
bort men jeg har den klart for meg). Dette var litt av det jeg spurte om
tidligere. Jeg har i o f seg löst fortsettelsen også. Her begynner jeg
lengst ned i katalogtreet, og for hvert trinn oppover må jeg legge till i
stort sett samma sak (noen små endringer i variabelnamn og sånt). Mit
spörsmål idag (og nå håper jeg virkelig at noen gidder å svare) er: Jeg har
begynt lengst ned i katalogtreet og klattrer oppover. Men hvordan gör man om
man vil gå tvert om? Og sannsynligvis er det bedre. Og viktigste spörsmålet:
Det MÅ finnes en enklere måte. Noen som kan tenke seg å avslöre
trylleformeln?





 
 
Jacob Bunk Nielsen (20-07-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 20-07-01 13:51

"Øystein Håland" <molen@mbox302.swipnet.se> writes:

> Är spörsmålet så triviellt här att ingen gidder å svare.

Måske(?) ... jeg havde nok lavet det med en rekursiv funktion som
(totalt utestet):

<?php
function listdir($dirname, $pre) {
$dh = opendir($dirname);
while ($file = readdir($dh)) {
//her kan også indføres check for .htaccess og den slags
if ($file == "." || $file == "..") {
continue;
}
if (is_dir($file)) {
listdir($file, $pre . "&nbsp");
}
// lav fin linktekst her ...
print("<a href=\"$file\">$min_fine_link_tekst</a><br>\n");
}
}
?>

Så kalder du bare listdir($somewhere, ""); og er glad

Det andet argument ($pre) gør at du får indrykket de forskellige
niveauer af biblioteker i et egentligt træ i stedet for bare at få en
liste.

> Det MÅ finnes en enklere måte. Noen som kan tenke seg å avslöre
> trylleformeln?

Rekursion. Et filsystem er en rekursiv datastruktur, hvad er så bedre
end en rekursiv algoritme til at løbe den igennem?

--
Jacob
"An NT server can be run by an idiot, and usually is." -- Tom Holub

http://www.bunk.cc - nu med Emacs effekt

Øystein Håland (20-07-2001)
Kommentar
Fra : Øystein Håland


Dato : 20-07-01 14:34

Du har så rett så rett. Hvorfor tenkte jeg ikke på det tidligere? Derfor at
jeg håller på å läre meg. Og nå skal jeg umiddelbart sette igang og teste
den funktionen du har gitt meg og se hvor den kan bäre hen. Takk skal du ha.
(Det er ikke helt umulig at jeg kommer tilbake, så nå er du og andre
varskodde... :)

"Jacob Bunk Nielsen" <spam@bunk.cc> skrev i meddelandet
news:m31ynbu5li.fsf@paven.bunk.cc...
> "Øystein Håland" <molen@mbox302.swipnet.se> writes:
>
> > Är spörsmålet så triviellt här att ingen gidder å svare.
>
> Måske(?) ... jeg havde nok lavet det med en rekursiv funktion som
> (totalt utestet):
>
> <?php
> function listdir($dirname, $pre) {
> $dh = opendir($dirname);
> while ($file = readdir($dh)) {
> //her kan også indføres check for .htaccess og den slags
> if ($file == "." || $file == "..") {
> continue;
> }
> if (is_dir($file)) {
> listdir($file, $pre . "&nbsp");
> }
> // lav fin linktekst her ...
> print("<a href=\"$file\">$min_fine_link_tekst</a><br>\n");
> }
> }
> ?>
>
> Så kalder du bare listdir($somewhere, ""); og er glad
>
> Det andet argument ($pre) gør at du får indrykket de forskellige
> niveauer af biblioteker i et egentligt træ i stedet for bare at få en
> liste.
>
> > Det MÅ finnes en enklere måte. Noen som kan tenke seg å avslöre
> > trylleformeln?
>
> Rekursion. Et filsystem er en rekursiv datastruktur, hvad er så bedre
> end en rekursiv algoritme til at løbe den igennem?
>
> --
> Jacob
> "An NT server can be run by an idiot, and usually is." -- Tom Holub
>
> http://www.bunk.cc - nu med Emacs effekt



Jacob Bunk Nielsen (20-07-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 20-07-01 15:02

"Øystein Håland" <molen@mbox302.swipnet.se> writes:

> (Det er ikke helt umulig at jeg kommer tilbake, så nå er du og andre
> varskodde... :)

Du skal være velkommen - specielt hvis du har læst
<http://www.usenet.dk/netikette/quote.html>.

--
Jacob
Drink your coffee! There are poor people in Africa sleeping!

http://www.bunk.cc - nu med Emacs effekt

Øystein Håland (21-07-2001)
Kommentar
Fra : Øystein Håland


Dato : 21-07-01 00:00


> Så kalder du bare listdir($somewhere, ""); og er glad
>
Hvorfra kaller man på en funktion. Innenfra eller utenfor? (mellom <? ?>
eller virker funktionen 'overallt'?
Og vilke argument skall man sende till funktionen? '$somewhere': är det en
variabel eller navnet på en viss katalog?
Dumme spörsmål kanskje, men..
Og her kommer ett dumt spörsmål till. Är det noen forskjell om jeg skriver
"." eller "./", og betyr ikke begge deler den katalog du står i?



Jacob Bunk Nielsen (21-07-2001)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 21-07-01 01:02

"Øystein Håland" <molen@mbox302.swipnet.se> writes:

> > Så kalder du bare listdir($somewhere, ""); og er glad
> >
> Hvorfra kaller man på en funktion. Innenfra eller utenfor? (mellom <? ?>
> eller virker funktionen 'overallt'?

Du kalder funktionen mellem <? og ?>, ganske som du kalder alle andre
PHP-funktioner. Selvfølgelig skal funktionen bare være erklæret i det
script du kører nu, enten ved at den er inkluderet fra en anden fil,
eller ved at den står i det script du køre nu. Et hurtigt eksempel:

<?php
function hello() {
return "Hello World";
}

print(hello());
?>

Ovenstående kode vil udskrive "Hello World".

> Og vilke argument skall man sende till funktionen? '$somewhere': är det en
> variabel eller navnet på en viss katalog?

En funktion er erklæret, så den enten ikke tager nogen argumenter,
eller så den tager et eller flere argumenter. Når du kalder den skal
du sørge for at have lige så mange argumenter med som den er erklæret
med.

Dernæst kan du også have default argumenter. Lad os sige at du i
stedet for "Hello World" vil skrive "Hi navn", og at det næsten altid
er Erik der ser den side, så kan du lave funktionen som:

function hi($name = "Erik") {
return "Hi $name";
}

Kalder du den så som:

hi();

Vil den returnere "Hi Erik". Kalder du den med et argument, fx

hi("Bente");

Vil den returnere "Hi Bente". På den måde bliver $name sat til Erik,
hvis ikke andet er givet.

$somewhere i mit foregående eksempel er en sti til det bibliotek, som
skal være rod i din biblioteksstruktur.

> Og her kommer ett dumt spörsmål till. Är det noen forskjell om jeg skriver
> "." eller "./", og betyr ikke begge deler den katalog du står i?

Det er i bund og grund det samme. Der er dog tilfælde, hvor man skal
bruge det ene frem for det andet.

--
Jacob
With enough free beer, free speech should come naturally.

http://www.bunk.cc - nu med Emacs effekt

Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408672
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste