ordenen van Variabelen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jo  prive

Jo prive

17/02/2011 01:48:17
Quote Anchor link
Ik loop tegen een probleem aan dat ik met het internet via google enzo niet oplossen kan.
Namelijk ik heb een hele reeks aan variabelen in een WHILE...
Wanneer ik de functie uitvoer gaat alles goed, alleen de volgorde waarop ik het wil hebben niet.

Graag wil ik de volgorde als volgt hebben:
01
02
03
04
05
06
07
etc...

Quote:

function content($pagina)
{
$handle=opendir("pages/");
$dir = "pages/"; // de directory die hij uit moet lezen
$exten = 'php'; // de extensie die hij weer moet geven
$paginanaam = substr($pagina, 0, -4);
#echo "<br />Dit is de paginanaam: ". $paginanaam."<br /><br />";
if ($handle = opendir($dir))
{
while (false !== ($file = readdir($handle)))
{
$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
$paginacheck = substr($file, 0, -7);

//woorden verwijderen
if($ext['extension'] == $exten && $paginacheck == $paginanaam)
{
$bewerknummer = $file;
$bewerknummer = str_replace('index', "", $bewerknummer);
$bewerknummer = str_replace('leswagens', "", $bewerknummer);
$bewerknummer = str_replace('lesmethode', "", $bewerknummer);
$bewerknummer = str_replace('lesprijs', "", $bewerknummer);
$bewerknummer = str_replace('algemeen', "", $bewerknummer);
$bewerknummer = str_replace('spotlight', "", $bewerknummer);
$bewerknummer = str_replace('_', "", $bewerknummer);
$bewerknummer = str_replace('.php', "", $bewerknummer);
$paginanummer = $bewerknummer;

if($paginanummer==01)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==02)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==03)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==04)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==05)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==06)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==07)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==08)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==09)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==10)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==11)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==12)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==13)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==14)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==15)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==16)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==17)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==18)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==19)
{
load_textvak($file,$paginanummer);
}
if($paginanummer==20)
{
load_textvak($file,$paginanummer);
}
}
}
if (empty($handle))
{

echo "Er is nog geen tekst beschikbaar voor deze pagina.<br /><br />Excuses voor het ongemak.";

}
closedir($handle);
}
}


In de functie load_textvak gaat alles goed... Daar wordt de juiste tekst geladen die geladen moet worden uit een reeks van bestanden.
Dit is misschien niet de meest voor de hand liggende manier van werken maar zo snap ik het zelf nog. :P

Ik ging ervan uit dat wanneer ik met de if($paginanummer==01 ... begin dat hij dan automatisch bij 1 begint, helaas is dit niet.
Met sort krijg ik alleen foutmeldingen, krijg ik deze niet veranderd er niets...

Is er iemand die een oplossing voor dit probleempje heeft?

Voor de duidelijkheid ik snap niet hoe dit script het doet maar hij gooit nu letterlijk alle bestanden er random door heen.

tnx
 
PHP hulp

PHP hulp

22/12/2024 19:34:24
 
Kris Peeters

Kris Peeters

17/02/2011 09:20:26
Quote Anchor link
Zet eens je code tussen [code][/code], niet tussen [quote][/quote]
En zet toch ook maar php code tussen <?php ?>, als het php is (niet als het enkel html is).

Ik zal ondertussen eens kijken naar het probleem
Gewijzigd op 17/02/2011 09:21:15 door Kris Peeters
 
Jo  prive

Jo prive

17/02/2011 09:56:13
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<?php
function content($pagina)
{

$handle=opendir("pages/");
$dir = "pages/"; // de directory die hij uit moet lezen
$exten = 'php'; // de extensie die hij weer moet geven
$paginanaam = substr($pagina, 0, -4);
#echo "<br />Dit is de paginanaam: ". $paginanaam."<br /><br />";
if ($handle = opendir($dir))
{

while (false !== ($file = readdir($handle)))
{

$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
$paginacheck = substr($file, 0, -7);

//woorden verwijderen
if($ext['extension'] == $exten && $paginacheck == $paginanaam)
{

$bewerknummer = $file;
$bewerknummer = str_replace('index', "", $bewerknummer);
$bewerknummer = str_replace('leswagens', "", $bewerknummer);
$bewerknummer = str_replace('lesmethode', "", $bewerknummer);
$bewerknummer = str_replace('lesprijs', "", $bewerknummer);
$bewerknummer = str_replace('algemeen', "", $bewerknummer);
$bewerknummer = str_replace('spotlight', "", $bewerknummer);
$bewerknummer = str_replace('_', "", $bewerknummer);
$bewerknummer = str_replace('.php', "", $bewerknummer);
$paginanummer = $bewerknummer;

if($paginanummer==01)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==02)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==03)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==04)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==05)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==06)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==07)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==08)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==09)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==10)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==11)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==12)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==13)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==14)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==15)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==16)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==17)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==18)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==19)
{

load_textvak($file,$paginanummer);
}

if($paginanummer==20)
{

load_textvak($file,$paginanummer);
}
}
}

if (empty($handle))
{


echo "Er is nog geen tekst beschikbaar voor deze pagina.<br /><br />Excuses voor het ongemak.";

}

closedir($handle);
}
}

?>
 
Kris Peeters

Kris Peeters

17/02/2011 10:08:07
Quote Anchor link
Kan je een aantal voorbeelden geven van de file naam van die php files in pages/ ?

Zien of er een patroon is.
Ongetwijfeld kan het allemaal veel eenvoudiger.
Gewijzigd op 17/02/2011 10:08:48 door Kris Peeters
 
Jo  prive

Jo prive

17/02/2011 10:22:42
Quote Anchor link
Het aantal bestanden is onbekend (dezen worden door de admin aangemaakt)
De lengte van een bestandsnaam is ook onbekend, huidig voorbeeld:
index_05.php
leswangens_03.php


etc...

Toevoeging op 17/02/2011 10:49:37:

Als ik meer informatie moet verstrekken hoor ik het wel.
Als ik alle bestanden moet overtypen duurt het nog wel even. :)
 

17/02/2011 11:48:36
Quote Anchor link
Sowieso zijn regel 31 tot en met 110 onzin.
Je moet de zooi in een array stoppen en dan natsort over gooien.
 
Jo  prive

Jo prive

17/02/2011 11:53:39
Quote Anchor link
Ik heb meerdere malen geprobeerd dit in een array te stoppen en dan SORT er overheen te halen, ongeveer 6x op verschillende manieren geschreven en geprobeerd maar op één of andere manier doet het script dan zijn werk niet meer.
Misschien dat je voor mij een werkende manier hebt; dan wil ik dat nog wel eens proberen.
 

17/02/2011 11:54:13
Quote Anchor link
Laat maar eens zien wat je geprobeerd hebt.
 
Jo  prive

Jo prive

17/02/2011 12:13:37
Quote Anchor link
Ik heb die versie's hier niet meer.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function content($pagina)
{

$handle=opendir("pages/");
$dir = "pages/"; // de directory die hij uit moet lezen
$exten = 'php'; // de extensie die hij weer moet geven
$paginanaam = substr($pagina, 0, -4);
#echo "<br />Dit is de paginanaam: ". $paginanaam."<br /><br />";
if ($handle = opendir($dir))
{

while (false !== ($file = readdir($handle)))
{

$bestand = $dir ."/". $file ;
$ext = pathinfo($bestand);
$paginacheck = substr($file, 0, -7);

//woorden verwijderen
if($ext['extension'] == $exten && $paginacheck == $paginanaam)
{

$bewerknummer = $file;
$bewerknummer = str_replace('index', "", $bewerknummer);
$bewerknummer = str_replace('leswagens', "", $bewerknummer);
$bewerknummer = str_replace('lesmethode', "", $bewerknummer);
$bewerknummer = str_replace('lesprijs', "", $bewerknummer);
$bewerknummer = str_replace('algemeen', "", $bewerknummer);
$bewerknummer = str_replace('spotlight', "", $bewerknummer);
$bewerknummer = str_replace('_', "", $bewerknummer);
$bewerknummer = str_replace('.php', "", $bewerknummer);
$paginanummer = $bewerknummer;

//nogmaals dit typ ik nu even snel, maar die andere pogingen heb ik aan de hand van php.net geschreven.
//maar hier komt het wel op neer

$paginanummer = array($paginanummer);
asort($paginanummer);

if($paginanummer==01)
{

load_textvak($file,$paginanummer);
}

#etc...

}
}

if (empty($handle))
{


echo "Er is nog geen tekst beschikbaar voor deze pagina.<br /><br />Excuses voor het ongemak.";

}

closedir($handle);
}
}

?>
 

17/02/2011 12:41:25
Quote Anchor link
Je moet het binnen de while in een array stopen en buiten de while sorten en echo'en.
 
Jo  prive

Jo prive

17/02/2011 12:59:24
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php

function content($pagina)
{

    $handle=opendir("pages/");
    $dir = "pages/"; // de directory die hij uit moet lezen
    $exten = 'php'; // de extensie die hij weer moet geven
    $paginanaam = substr($pagina, 0, -4);
    #echo "<br />Dit is de paginanaam: ". $paginanaam."<br /><br />";
    if ($handle = opendir($dir))
        {

            while (false !== ($file = readdir($handle)))
            {

                $bestand = $dir ."/". $file ;
                $ext = pathinfo($bestand);
                $paginacheck = substr($file, 0, -7);

                //woorden verwijderen    
                if($ext['extension'] == $exten && $paginacheck == $paginanaam)
                {

                $bewerknummer = $file;
                $bewerknummer = str_replace('index',         "", $bewerknummer);
                $bewerknummer = str_replace('leswagens',     "", $bewerknummer);
                $bewerknummer = str_replace('lesmethode',     "", $bewerknummer);
                $bewerknummer = str_replace('lesprijs',     "", $bewerknummer);
                $bewerknummer = str_replace('algemeen',     "", $bewerknummer);
                $bewerknummer = str_replace('spotlight',     "", $bewerknummer);
                $bewerknummer = str_replace('_',             "", $bewerknummer);
                $bewerknummer = str_replace('.php',         "", $bewerknummer);
                $paginanummer = $bewerknummer;
                $paginanummer = array($paginanummer);
                /*
                if($paginanummer==01)
                    {
                        load_textvak($file,$paginanummer);    
                    }
                if($paginanummer==02)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==03)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==04)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==05)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==06)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==07)
                    {
                        load_textvak($file,$paginanummer);
                    }                    
                if($paginanummer==08)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==09)
                    {
                        load_textvak($file,$paginanummer);
                    }                    
                if($paginanummer==10)
                    {
                        load_textvak($file,$paginanummer);
                    }    
                if($paginanummer==11)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==12)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==13)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==14)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==15)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==16)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==17)
                    {
                        load_textvak($file,$paginanummer);
                    }                    
                if($paginanummer==18)
                    {
                        load_textvak($file,$paginanummer);
                    }
                if($paginanummer==19)
                    {
                        load_textvak($file,$paginanummer);
                    }                    
                if($paginanummer==20)
                    {
                        load_textvak($file,$paginanummer);
                    }    */
                
                }
            }

            
            asort($paginanummer);
            #echo "paginanummers: ".$paginanummer."<br />\r\n";  //echo = Array
            load_textvak($file,$paginanummer);    
            if (empty($handle))
            {

            
                echo "Er is nog geen tekst beschikbaar voor deze pagina.<br /><br />Excuses voor het ongemak.";
                
            }

            closedir($handle);
        }
}


?>


dit is de oplossing ook niet, dit is het zelfde resultaat als dat ik ervoor had.
output van $paginanummer = Array ipv :
01
02
03
04
etc...
Gewijzigd op 17/02/2011 13:00:25 door Jo prive
 

17/02/2011 13:01:16
Quote Anchor link
Ja, want het is een array en geen string. Dus even verder werken.
 
Jo  prive

Jo prive

17/02/2011 13:11:02
Quote Anchor link
Maar dat is dus het probleem wat ik heb, zoals ik het in het begin ook omschreef. en ik weet het verschil tussen een aray en string wel.
Alleen weet ik zelf niet hoe ik dit probleem oplos.
 

17/02/2011 13:14:26
 
Jo  prive

Jo prive

17/02/2011 13:37:41
Quote Anchor link
Misschien dat dit gaat lukken, maar er gaat nog wel iets fout....
de huidige code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
function content($pagina)
{

    $handle=opendir("pages/");
    $dir = "pages/"; // de directory die hij uit moet lezen
    $exten = 'php'; // de extensie die hij weer moet geven
    $paginanaam = substr($pagina, 0, -4);
    #echo "<br />Dit is de paginanaam: ". $paginanaam."<br /><br />";
    if ($handle = opendir($dir))
        {

            while (false !== ($file = readdir($handle)))
            {

                $bestand = $dir ."/". $file ;
                $ext = pathinfo($bestand);
                $paginacheck = substr($file, 0, -7);

                //woorden verwijderen    
                if($ext['extension'] == $exten && $paginacheck == $paginanaam)
                {

                $bewerknummer = $file;
                $bewerknummer = str_replace('index',         "", $bewerknummer);
                $bewerknummer = str_replace('leswagens',     "", $bewerknummer);
                $bewerknummer = str_replace('lesmethode',     "", $bewerknummer);
                $bewerknummer = str_replace('lesprijs',     "", $bewerknummer);
                $bewerknummer = str_replace('algemeen',     "", $bewerknummer);
                $bewerknummer = str_replace('spotlight',     "", $bewerknummer);
                $bewerknummer = str_replace('_',             "", $bewerknummer);
                $bewerknummer = str_replace('.php',         "", $bewerknummer);
                $paginanummer = $bewerknummer;
                $paginanummer = array($paginanummer);              
                }
            }

            
            asort($paginanummer);
            #echo "paginanummers: ".$paginanummer."<br />\r\n";  //echo = Array
            print_r($paginanummer);
            echo "<br /><br />";
            foreach ($paginanummer as $value) {
            echo "value: ".$value."<br />";
            load_textvak($file,$value);    
            }

            
            
            if (empty($handle))
            {

            
                echo "Er is nog geen tekst beschikbaar voor deze pagina.<br /><br />Excuses voor het ongemak.";
                
            }

            closedir($handle);
        }
}

?>


output:
Array ( [0] => 05 )

value: 05


Maar waarom doet hij nu alleen 5?
En waarom neemt hij de waarde van file niet meer mee?




Toevoeging op 17/02/2011 13:39:15:

vraag 2 snap ik denk ik wel...
Omdat hij nu uit de while is...maar hoe neem ik die $file waarde mee naar de foreach loop?

Toevoeging op 17/02/2011 13:59:43:

hier kun je de output wel zien, je zit op home.php maar het systeem heb ik zo gebouwd dat hij denkt dat het index.php is en moet eigenlijks de bestanden index gaan laden. Met het bovenste bovenstaande script lukte dit ook, en ging het goed, nu is het de volgorde die ik nog even goed wil. de bestanden in dit geval gaat het om:
index_01.php
index_02.php
index_03.php
index_04.php
index_05.php
 
Jo  prive

Jo prive

21/02/2011 23:20:56
Quote Anchor link
Mijn probleem is nog steeds niet opgelost...
Is er nog iemand met een goede suggestie?
mvg
 
- SanThe -

- SanThe -

21/02/2011 23:29:55
Quote Anchor link
Let op dat $paginanummer buiten de while() al bestaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$paginanummer
= array();
while (false !== ($file = readdir($handle)))
    {

    $bestand = $dir ."/". $file ;
    $ext = pathinfo($bestand);
    $paginacheck = substr($file, 0, -7);
    
    //woorden verwijderen    
    if($ext['extension'] == $exten && $paginacheck == $paginanaam)
    {

        $bewerknummer = $file;
        $bewerknummer = str_replace('index',         "", $bewerknummer);
        $bewerknummer = str_replace('leswagens',     "", $bewerknummer);
        $bewerknummer = str_replace('lesmethode',     "", $bewerknummer);
        $bewerknummer = str_replace('lesprijs',     "", $bewerknummer);
        $bewerknummer = str_replace('algemeen',     "", $bewerknummer);
        $bewerknummer = str_replace('spotlight',     "", $bewerknummer);
        $bewerknummer = str_replace('_',             "", $bewerknummer);
        $bewerknummer = str_replace('.php',         "", $bewerknummer);
        $paginanummer[] = $bewerknummer;
    }
}


asort($paginanummer);
?>
 
Jo  prive

Jo prive

22/02/2011 00:15:21
Quote Anchor link
Hey Santhe,

Hij neemt nu de juiste waarde mee en sorteert het gelijk in de juiste volgorde zoals ik dat wil. Dit is echt wat ik zocht...
Dankje, helemaal top.


mvg
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.