PDA

Bekijk Volledige Versie : Gericht mappen zoeken op server



Meldpunt Zangvogeloverlast
12/09/09, 09:55
Beste mensen!

Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
begint met video 'video'.

Nu wil ik een script als die mapjes laten vinden.

Weet iemand misschien een slimme manier daarvoor?
Eigenlijk is het een script dat zichzelfs steeds maar moet herhalen (zoek
map => zoek supmap => totdat 'geen map meer' of (substring,5 map='video').

Maar hoe doe je dat, zondat dat het scripts zich tot het oneindige in de
knoop draait?

--
Groeten, Eduard

Ronald Klip
12/09/09, 13:55
Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
<meldpunt.zangvogeloverlast@xs4all.nl>:

> Beste mensen!

Eduard!

> Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
> begint met video 'video'.
>
> Nu wil ik een script als die mapjes laten vinden.
>
> Weet iemand misschien een slimme manier daarvoor?
> Eigenlijk is het een script dat zichzelfs steeds maar moet herhalen (zoek
> map => zoek supmap => totdat 'geen map meer' of (substring,5
> map='video').
>
> Maar hoe doe je dat, zondat dat het scripts zich tot het oneindige in de
> knoop draait?

Recursie toepassen, oftewel een functie gebruiken die indien nodig
zichzelf aanroept.

--
Ronald

Erick T. Barkhuis
12/09/09, 14:05
Ronald Klip:
> Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
> <meldpunt.zangvogeloverlast@xs4all.nl>:
>
> > Beste mensen!
>
> Eduard!
>
> > Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
> > begint met video 'video'.
> >
> > Nu wil ik een script als die mapjes laten vinden.
>
> Recursie toepassen, oftewel een functie gebruiken die indien nodig
> zichzelf aanroept.

....waarbij nog wel even van belang is te weten, of
'video*'-directories zelf ook weer 'video*'-directories kunnen
bevatten, en zo ja, of je die apart genoemd wilt hebben in het
resultaat.

--
Erick

Meldpunt Zangvogeloverlast
12/09/09, 17:25
Ronald!

Op zaterdag 12 september 14:03, in artikel
MPG.2515ac688a96d7c69898f1@127.0.0.1, Erick T. Barkhuis
<erick.use-net@ardane.c-o-m> schreef:

> Ronald Klip:
>> Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
>> <meldpunt.zangvogeloverlast@xs4all.nl>:
>>
>>> Beste mensen!
>>
>> Eduard!
>>
>>> Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
>>> begint met video 'video'.
>>>
>>> Nu wil ik een script als die mapjes laten vinden.
>>
>> Recursie toepassen, oftewel een functie gebruiken die indien nodig
>> zichzelf aanroept.
>
> ...waarbij nog wel even van belang is te weten, of
>
> 'video*'-directories zelf ook weer 'video*'-directories kunnen
> bevatten, en zo ja, of je die apart genoemd wilt hebben in het
> resultaat.

Nee: video-directories bevatten altijd slechts één embedded filmpje en
sowieso geen sub-directories.
Dat maakt het natuurlijk iets makkelijker...

--
Groeten, Eduard

Meldpunt Zangvogeloverlast
12/09/09, 17:25
Op zaterdag 12 september 13:46, in artikel op.uz46z606u6ldbc@pwrbk.local,
Ronald Klip <nieuws@contentecontent.invalid> schreef:

> Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
> <meldpunt.zangvogeloverlast@xs4all.nl>:
>
>> Beste mensen!
>
> Eduard!
>
>> Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
>> begint met video 'video'.
>>
>> Nu wil ik een script als die mapjes laten vinden.
>>
>> Weet iemand misschien een slimme manier daarvoor?
>> Eigenlijk is het een script dat zichzelfs steeds maar moet herhalen (zoek
>> map => zoek supmap => totdat 'geen map meer' of (substring,5
>> map='video').
>>
>> Maar hoe doe je dat, zonder dat het script zich tot het oneindige in de
>> knoop draait?
>
> Recursie toepassen, oftewel een functie gebruiken die indien nodig
> zichzelf aanroept.

Ja, eh... zoiets dacht ik dus, maar hoe doe je zoiets..?


--
Groeten, Eduard

Erick T. Barkhuis
12/09/09, 17:35
Meldpunt Zangvogeloverlast:
>
>
>
> Op zaterdag 12 september 13:46, in artikel op.uz46z606u6ldbc@pwrbk.local,
> Ronald Klip <nieuws@contentecontent.invalid> schreef:
>
> > Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
> > <meldpunt.zangvogeloverlast@xs4all.nl>:

> >> Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
> >> begint met video 'video'.
> >>
> >> Nu wil ik een script als die mapjes laten vinden.

> > Recursie toepassen, oftewel een functie gebruiken die indien nodig
> > zichzelf aanroept.
>
> Ja, eh... zoiets dacht ik dus, maar hoe doe je zoiets..?

Zie bijvoorbeeld
http://de.php.net/manual/en/class.dir.php

In de bijdragen staan verschillende oplossingen. Daar waar
directorynamen worden opgeslagen vraag je extra uit op
(substr($entryNaam,0,5)="video").

--
Erick

Meldpunt Zangvogeloverlast
12/09/09, 21:05
Erick!

Op zaterdag 12 september 17:30, in artikel
MPG.2515dd1357f8f7c89898f4@127.0.0.1, Erick T. Barkhuis
<erick.use-net@ardane.c-o-m> schreef:

> Meldpunt Zangvogeloverlast:
>>
>>
>>
>> Op zaterdag 12 september 13:46, in artikel op.uz46z606u6ldbc@pwrbk.local,
>> Ronald Klip <nieuws@contentecontent.invalid> schreef:
>>
>>> Op Sat, 12 Sep 2009 09:54:01 +0200 schreef Meldpunt Zangvogeloverlast
>>> <meldpunt.zangvogeloverlast@xs4all.nl>:
>
>>>> Al mijn videoembeds heb ik op de server in mapjes staan met een naam die
>>>> begint met video 'video'.
>>>>
>>>> Nu wil ik een script als die mapjes laten vinden.
>
>>> Recursie toepassen, oftewel een functie gebruiken die indien nodig
>>> zichzelf aanroept.
>>
>> Ja, eh... zoiets dacht ik dus, maar hoe doe je zoiets..?
>
> Zie bijvoorbeeld
> http://de.php.net/manual/en/class.dir.php

Prachtig! Prachtig!
Op z¹n Jan Boerefluitjes werd het dus dit:

<?php
$it = new RecursiveDirectoryIterator('./');

foreach (new RecursiveIteratorIterator($it, 2) as $path)
{
if ($path->isDir())
{
if ( (strstr($path,"/video")) && (!strstr($path,"video/") ) &&
(!strstr($path,"/archief/video") ) )
{
$path=substr($path,1);
echo $path."<br>\n";
}
}
}
?>

Zie http://www.harmonicahoek.nl/dirzoek.php

Alleen: hoe krijg ik dit resultaat nou 'ondersteboven'?
(arsort lukte me niet).

--
Groeten, Eduard

Erick T. Barkhuis
13/09/09, 10:25
Meldpunt Zangvogeloverlast:

> <?php
> $it = new RecursiveDirectoryIterator('./');
>
> foreach (new RecursiveIteratorIterator($it, 2) as $path)
> {
> if ($path->isDir())
> {
> if ( (strstr($path,"/video")) && (!strstr($path,"video/") ) &&
> (!strstr($path,"/archief/video") ) )
> {
> $path=substr($path,1);
> echo $path."<br>\n";
> }
> }
> }
> ?>
>
> Zie http://www.harmonicahoek.nl/dirzoek.php
>
> Alleen: hoe krijg ik dit resultaat nou 'ondersteboven'?
> (arsort lukte me niet).

In plaats van
echo $path."<br>\n";
doe je
$resultArray[] = $path;

Wel even $resultArray bovenin leeg creeren.


Vervolgens kun je aan het eind van de iteratie dat array sorteren en
afdrukken.


--
Erick

Meldpunt Zangvogeloverlast
13/09/09, 11:05
Op zondag 13 september 10:24, in artikel
MPG.2516cac0bdcbfb8f9898f5@127.0.0.1, Erick T. Barkhuis
<erick.use-net@ardane.c-o-m> schreef:

> Meldpunt Zangvogeloverlast:
>
>> <?php
>> $it = new RecursiveDirectoryIterator('./');
>>
>> foreach (new RecursiveIteratorIterator($it, 2) as $path)
>> {
>> if ($path->isDir())
>> {
>> if ( (strstr($path,"/video")) && (!strstr($path,"video/") ) &&
>> (!strstr($path,"/archief/video") ) )
>> {
>> $path=substr($path,1);
>> echo $path."<br>\n";
>> }
>> }
>> }
>> ?>
>>
>> Zie http://www.harmonicahoek.nl/dirzoek.php
>>
>> Alleen: hoe krijg ik dit resultaat nou 'ondersteboven'?
>> (arsort lukte me niet).
>
> In plaats van
> echo $path."<br>\n";
> doe je
> $resultArray[] = $path;
>
> Wel even $resultArray bovenin leeg creeren.

Je bedoelt unset($resultArray)?

Is niet nodig.
Werkt zo ook. Ik had al inderdaad gedacht aan het plaatsen in een array.
Dank.

--
Groeten, Eduard

Erick T. Barkhuis
13/09/09, 11:15
Meldpunt Zangvogeloverlast:

> > Wel even $resultArray bovenin leeg creeren.
>
> Je bedoelt unset($resultArray)?

Nee, ik bedoel
$resultArray = array();

> Is niet nodig.
> Werkt zo ook.

Je boft. :-)


--
Erick

Meldpunt Zangvogeloverlast
14/09/09, 13:05
Erick!

Op zondag 13 september 11:10, in artikel
MPG.2516d591f5a87b759898f6@127.0.0.1, Erick T. Barkhuis
<erick.use-net@ardane.c-o-m> schreef:

> Meldpunt Zangvogeloverlast:
>
>>> Wel even $resultArray bovenin leeg creeren.
>>
>> Je bedoelt unset($resultArray)?
>
> Nee, ik bedoel
> $resultArray = array();
>
>> Is niet nodig.
>> Werkt zo ook.
>
> Je boft. :-)

Ik denk dat het gewoon werkt, omdat deze array in een function wordt
gedefiniëerd.

Het script werkt inmiddels al naar voldoening:

http://www.harmonicahoek.nl/archief/vdeo/overzichten/

--
Groeten, Eduard