abonnement Unibet Coolblue
pi_126423062
Is helaas ook geen oplossing, zat zelf te denken of ik de minimale buffer van chrome kan aanpassen van bv 4096 naar 1024 oid? want na 2500 regels zie ik zowat iedere regel komen... en niet 10-20 te gelijk....
Just say hi!
  maandag 13 mei 2013 @ 11:38:54 #162
343369 Laser.
Love Always Shines
pi_126423213
Toch even wat hulp nodig met iets. :)

Ik heb een mysql tabel waar datums in een veld met de functie NOW() zijn ingevuld.
Voorheen las ik dit altijd rechtstreeks uit de database, maar nu wil ik het netter hebben staan. En ook in het NL.

Na wat puzzelen heb ik momenteel dit:

1
2
3
4
setlocale(LC_TIME, 'NL_nl'); 
setlocale(LC_ALL, 'nl_NL'); 

print date("%e-%B-%Y", strftime($row['log']));

Dan krijg ik als output: %Europe/Amsterdam-%064-%1970

Dus dat gaat niet goed. :') Het moet worden: dag-maand-jaar.
  maandag 13 mei 2013 @ 11:45:31 #163
134783 papernote
Een echte.
pi_126423438
Roep je ook date_default_timezone_set() aan?

En heb je überhaupt de documentatie van de date() functie gelezen?
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  maandag 13 mei 2013 @ 11:53:16 #164
91039 mstx
2x1/2 = 1/2 x 1/2
pi_126423677
1print strftime("%e-%B-%Y", strtotime($row['log']));
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  maandag 13 mei 2013 @ 11:56:20 #165
343369 Laser.
Love Always Shines
pi_126423804
Thanks! :)

Ik had date_default_timezone_set niet aangeroepen. Staat nu op Amsterdam. En date() was inderdaad niet nodig om te gebruiken!
  maandag 13 mei 2013 @ 14:26:13 #166
25889 Sitethief
Fulltime Flapdrol
pi_126428659
Wat is eigenlijk beter, of maakt het niks uit?
Dit:
1
2
3
4
5
6
7
8
9
10
11
<?php
if($productArray){
            foreach(
$productArray as $k=>$v){
                
$p $k;
                if(
$getProductData){
                    
$p $this->getProduct($k);
                }
                
$retArr[$v] = $p;
            }
        }   
?>
Of dit:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
if($productArray){
            foreach(
$productArray as $k=>$v){
                if(
$getProductData){
                    
$retArr[$v] = $this->getProduct($k);
                }else{
                    
$retArr[$v] = $k;
                }
                
            }
        }
?>
Ik vraag me af of die else nou echt zoveel vertraagt, ik vind het gewoon lelijk staan om standaard $k in $p te zetten in dit geval.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 13 mei 2013 @ 14:32:22 #167
91039 mstx
2x1/2 = 1/2 x 1/2
pi_126428856
1
2
3
4
5
6
7
<?php
 
if($productArray){
    foreach(
$productArray as $k=>$v){
        
$retArr[$v] = $getProductData?$this->getProduct($k):$k;
    }
}
?>

Als je tussen je eigen 2 opties moet kiezen vind ik de 2e veel duidelijker.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  maandag 13 mei 2013 @ 14:42:53 #168
134783 papernote
Een echte.
pi_126429234
quote:
0s.gif Op maandag 13 mei 2013 14:26 schreef Sitethief het volgende:
Wat is eigenlijk beter, of maakt het niks uit?
Dit:
[ code verwijderd ]

Of dit:
[ code verwijderd ]

Ik vraag me af of die else nou echt zoveel vertraagt, ik vind het gewoon lelijk staan om standaard $k in $p te zetten in dit geval.
Vertraagt? Is dat überhaupt iets om je mee bezig te houden in een simpele if-else constructie? Meten = weten.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_126429603
Ik ben voor de optie van mstx. Nog een andere optie (die ik niet mooier vind dan die van mstx):
1
2
3
4
5
6
7
8
9
10
<?php
if($productArray){
    foreach(
$productArray as $k=>$v){
        
$retArr[$v] = $k;
        if(
$getProductData){
            
$retArr[$v] = $this->getProduct($k);
        }
    }
}
?>
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  maandag 13 mei 2013 @ 14:58:02 #170
25889 Sitethief
Fulltime Flapdrol
pi_126429706
quote:
14s.gif Op maandag 13 mei 2013 14:32 schreef mstx het volgende:

[ code verwijderd ]

Als je tussen je eigen 2 opties moet kiezen vind ik de 2e veel duidelijker.
Ohjah, dies eigenlijk veel mooier, ik vergeet vaak dat er diverse shorthands zijn :D.

Ik zit de laatste tijd een beetje te kritisch naar mijn eigen programmeerstijl te kijken... En dan komen dit soort dingen ook om de hoek kijken. Eigenlijk moet ik niet zo mierenneuken.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_126429756
quote:
0s.gif Op maandag 13 mei 2013 14:58 schreef Sitethief het volgende:

[..]

Ohjah, dies eigenlijk veel mooier, ik vergeet vaak dat er diverse shorthands zijn :D.

Ik zit de laatste tijd een beetje te kritisch naar mijn eigen programmeerstijl te kijken... En dan komen dit soort dingen ook om de hoek kijken. Eigenlijk moet ik niet zo mierenneuken.
Als je er de tijd voor hebt is het helemaal niet verkeerd om kritisch naar je eigen code te kijken.
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_126429876
1
2
3
4
5
6
7
8
9
<?php
if($productArray){
     if(
$getProductData) {
        foreach(
$productArray as $k=>$v$retArr[$v] = $this->getProduct($k);
     } else {
        foreach(
$productArray as $k=>$v$retArr[$v] = $k;
     }
}
?>

zo moet hij nog sneller zijn als het goed is, maar misschien iets minder goed leesbaar/duidelijk dan #2
..///
  maandag 13 mei 2013 @ 15:03:35 #173
25889 Sitethief
Fulltime Flapdrol
pi_126429914
quote:
14s.gif Op maandag 13 mei 2013 14:59 schreef Rockfire het volgende:

[..]

Als je er de tijd voor hebt is het helemaal niet verkeerd om kritisch naar je eigen code te kijken.
Mjah das vaak het probleem hier, er zit zo'n druk achter dat alles soms een brei van veel procedurele code wordt met te weinig structuur een OOP om de codebase hanteerbaar te houden. Wat uiteindelijk tot meer werk leid als er gerefeactored moet worden etc, maar goed dat is een bekend verhaal denk ik. En daar naast heb ik OOP nog niet volledig onder de knie.

Toch vind ik het veel leuker om gestructureerde, goed leesbare, becommentarieerde code te schijven, kost alleen meer tijd.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  maandag 13 mei 2013 @ 15:32:36 #174
37634 wobbel
Da WoBBeL King
pi_126431323
Ik klop al veel te lang geen code meer, hoe selecteer ik het volgende:

tabel 'users'

ID
Naam

SELECT * FROM users WAARVAN ID = 5 EN/OF (dus mag ook allebei) Naam = henk
  maandag 13 mei 2013 @ 15:35:45 #175
91039 mstx
2x1/2 = 1/2 x 1/2
pi_126431464
quote:
0s.gif Op maandag 13 mei 2013 15:32 schreef wobbel het volgende:
EN/OF (dus mag ook allebei)
OR
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  maandag 13 mei 2013 @ 15:37:07 #176
37634 wobbel
Da WoBBeL King
pi_126431516
quote:
14s.gif Op maandag 13 mei 2013 15:35 schreef mstx het volgende:

[..]

OR
Maar dan mag het toch niet allebei? Het ene of het andere
  maandag 13 mei 2013 @ 15:37:37 #177
91039 mstx
2x1/2 = 1/2 x 1/2
pi_126431541
quote:
0s.gif Op maandag 13 mei 2013 15:37 schreef wobbel het volgende:

[..]

Maar dan mag het toch niet allebei? Het ene of het andere
Dat is XOR.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  maandag 13 mei 2013 @ 15:37:53 #178
4159 GI
Nee ik heet geen JOE
pi_126431557
quote:
0s.gif Op maandag 13 mei 2013 15:32 schreef wobbel het volgende:
Ik klop al veel te lang geen code meer, hoe selecteer ik het volgende:

tabel 'users'

ID
Naam

SELECT * FROM users WAARVAN ID = 5 EN/OF (dus mag ook allebei) Naam = henk
select * from users where ID = 5 or naam = "henk".

Dan krijg je alles met vijf, ook als het henk is :)
  maandag 13 mei 2013 @ 15:45:15 #179
134783 papernote
Een echte.
pi_126431894
quote:
0s.gif Op maandag 13 mei 2013 15:02 schreef wipes66 het volgende:

[ code verwijderd ]

zo moet hij nog sneller zijn als het goed is, maar misschien iets minder goed leesbaar/duidelijk dan #2
Kun je beargumenteren waarom het sneller zou moeten zijn?
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  maandag 13 mei 2013 @ 15:46:30 #180
134783 papernote
Een echte.
pi_126431958
quote:
3s.gif Op maandag 13 mei 2013 15:37 schreef GI het volgende:

[..]

select * from users where ID = 5 or naam = "henk".

Dan krijg je alles met vijf, ook als het henk is :)
En ook alles dat geen vijf is, maar wel henk.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_126432023
quote:
5s.gif Op maandag 13 mei 2013 15:45 schreef papernote het volgende:

[..]

Kun je beargumenteren waarom het sneller zou moeten zijn?
geen if statement in de loop :P
..///
  maandag 13 mei 2013 @ 15:48:05 #182
4159 GI
Nee ik heet geen JOE
pi_126432049
quote:
2s.gif Op maandag 13 mei 2013 15:46 schreef papernote het volgende:

[..]

En ook alles dat geen vijf is, maar wel henk.
Dat wil hij toch ook ?
  maandag 13 mei 2013 @ 15:48:50 #183
134783 papernote
Een echte.
pi_126432084
quote:
0s.gif Op maandag 13 mei 2013 15:47 schreef wipes66 het volgende:

[..]

geen if statement in de loop :P
Ja dus? Branch prediction met een constante boolean, daar ga je niets van merken in de looptijd.

Het feit dat je nu tweemaal een identieke foreach hebt vind ik nadeliger qua onderhoud van je code.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  maandag 13 mei 2013 @ 15:51:47 #184
134783 papernote
Een echte.
pi_126432235
quote:
0s.gif Op maandag 13 mei 2013 15:02 schreef wipes66 het volgende:

[ code verwijderd ]

zo moet hij nog sneller zijn als het goed is, maar misschien iets minder goed leesbaar/duidelijk dan #2
Die tweede foreach kun je trouwens vervangen door een array_flip().
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_126432981
quote:
2s.gif Op maandag 13 mei 2013 15:48 schreef papernote het volgende:

[..]

Ja dus? Branch prediction met een constante boolean, daar ga je niets van merken in de looptijd.

Het feit dat je nu tweemaal een identieke foreach hebt vind ik nadeliger qua onderhoud van je code.
je hebt helemaal gelijk :P ik heb het voor de grap eens getest en het is zelf iets langzamer :@

edit: iets uitgebreider getest en er is 0,0 verschil.

[ Bericht 3% gewijzigd door wipes66 op 13-05-2013 16:12:57 ]
..///
  maandag 13 mei 2013 @ 16:32:00 #186
25889 Sitethief
Fulltime Flapdrol
pi_126434384
quote:
3s.gif Op maandag 13 mei 2013 15:51 schreef papernote het volgende:

[..]

Die tweede foreach kun je trouwens vervangen door een array_flip().
Wow, nice :D.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  woensdag 15 mei 2013 @ 15:02:12 #187
12221 Tijn
Powered by MS Paint
pi_126534025
Is er een handigere manier om de mogelijke waarden van een kolom van het type "set" terug te krijgen dan het uit het resultaat van "SHOW COLUMNS FROM `table`" te peuteren?
pi_126547260
Wat is handiger? Je kan in de tabel information_schema.columns gaan purken, maar volgens mij komt het dan in het zelfde onhandelbare formaat.
Tegenwoordig moet je Dr. Ir. zijn om een beetje correct Nederlands te kunnen neerpleuren.
Abusing semicolons since 1987.
  woensdag 15 mei 2013 @ 19:51:21 #189
12221 Tijn
Powered by MS Paint
pi_126547776
quote:
0s.gif Op woensdag 15 mei 2013 19:39 schreef rekenwonder het volgende:
Wat is handiger?
Iets waar gewoon een lijstje uitkomt ipv een gare array die ik nog moet parsen zou leuk zijn. Maar het is er niet he? ;(
pi_126550989
quote:
2s.gif Op woensdag 15 mei 2013 19:51 schreef Tijn het volgende:

[..]

Iets waar gewoon een lijstje uitkomt ipv een gare array die ik nog moet parsen zou leuk zijn. Maar het is er niet he? ;(
Een oplossing die ik wel eens gezien heb is het resultaat uit information_schema.columns te halen. Dat levert iets als enum('foo','bar','baz'). Dan in php enum vervangen door array en het geheel eval()-en. Een andere mogelijkheid zou ik zo niet weten.
pi_126562120
Hey allemaal,

Ben sinds een paar dagen met een crawler aan het spelen en heb nu een functie gemaakt die kijkt of links een volledige of juist onvolledige link heeft, indien er geen http:// in voorkomt wil ik het aanpassen, dat heb ik nu met de volgende functie gedaan, maar nu de vraag aan jullie. Wat zouden jullie anders doen?

Voorbeeld links
1
2
3
4
5
<a href="../niets.html">pagina ondieper</a>
<a href="./">zelfde diepte</a>
<a href="/">Root pagina</a>
<a href="../../../niets.html">Veel ondieper</a>
<a href="/nieuws/werkend/pagina.html">Veel diepere pagina vanaf root</a>

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
<?php

error_reporting
(E_ALL);

function 
checkUrl($baseUrl$currentUrl$foundUrl)
{

    echo 
'Original foundUrl: ' $foundUrl '<br />';

    if (
strtolower(substr($foundUrl07)) != "http://")
    {
        
$p parse_url($foundUrl);
        if (!isset(
$p['host']))
        {
            
$path '';
            if (
strpos($foundUrl"../") > -1)
            {
                
$dotsCount 0;
                while (
strpos($foundUrl"../") > -1)
                {
                    
$foundUrl substr($foundUrl3);
                    
$dotsCount++;
                }
                
                
$p parse_url($currentUrl);
                
$dirs explode("/"$p['path']);
                
                if (
count($dirs) > 1)
                {
                    foreach (
$dirs AS $k=>$v)
                    {
                        if (
strlen($v) == 0)
                        {
                            unset(
$dirs[$k]);
                        }
                    }
                    unset(
$dirs[count($dirs)]);
                    
                    
reset($dirs);
                }
                
                if (
count($dirs) > $dotsCount)
                {
                    
                    for (
$x 0$x $dotsCount$x++)
                    {
                        unset(
$dirs[count($dirs) - $x]);
                    }
                    
$path implode("/"$dirs) . "/";
                    
// die("meer");
                
}
            }
            elseif (
strpos($foundUrl"./") > -1)
            {
                
$foundUrl substr($foundUrl2);
            }
            elseif (
substr($foundUrl01) == "/")
            {
                
$foundUrl substr($foundUrl1);
            }
            
            
$foundUrl $baseUrl $path $foundUrl;
        }
    }

    echo 
'BaseUrl: ' $baseUrl '<br />';
    echo 
'CurrentUrl: ' $currentUrl '<br />';
    echo 
'FoundUrl: ' $foundUrl '<br />';

}
$baseUrl 'http://www.yourwebsite.com/';
$currentUrl 'http://www.yourwebsite.com/blogs/archive/all.html';

checkUrl($baseUrl$currentUrl'../../../niets/test/adem.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'../../../../../niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'/niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'./niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'../niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'niets.html');
echo 
'<hr>';

?>

uitkomst
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
Original foundUrl: ../../../niets/test/adem.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/niets/test/adem.html
----
Original foundUrl: ../../../../../niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/niets.html
----
Original foundUrl: /niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/niets.html
----
Original foundUrl: ./niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/niets.html
----
Original foundUrl: ../niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/blogs/niets.html
----
Original foundUrl: niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/niets.html
Ik hoor graag wat jullie er van vinden...
Just say hi!
  donderdag 16 mei 2013 @ 09:31:21 #192
187069 slacker_nl
Sicko pur sang
pi_126571042
quote:
5s.gif Op woensdag 15 mei 2013 23:30 schreef Chandler het volgende:
Hey allemaal,

Ben sinds een paar dagen met een crawler aan het spelen en heb nu een functie gemaakt die kijkt of links een volledige of juist onvolledige link heeft, indien er geen http:// in voorkomt wil ik het aanpassen, dat heb ik nu met de volgende functie gedaan, maar nu de vraag aan jullie. Wat zouden jullie anders doen?

Voorbeeld links
[ code verwijderd ]

[ code verwijderd ]

uitkomst
[ code verwijderd ]

Ik hoor graag wat jullie er van vinden...

Heb je iets van basename, dirname functies in php, dat gebruiken, scheelt je een hoop gezeik volgens mij. Je hebt ook een realpath functie. Ik zou die eens gebruiken.
In theory there is no difference between theory and practice. In practice there is.
  donderdag 16 mei 2013 @ 09:33:36 #193
91039 mstx
2x1/2 = 1/2 x 1/2
pi_126571110
quote:
Volgens mij klopt die niet.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_126571758
quote:
0s.gif Op donderdag 16 mei 2013 09:31 schreef slacker_nl het volgende:
Heb je iets van basename, dirname functies in php, dat gebruiken, scheelt je een hoop gezeik volgens mij. Je hebt ook een realpath functie. Ik zou die eens gebruiken.
Het gaat om parsen van links in een document ;)

quote:
6s.gif Op donderdag 16 mei 2013 09:33 schreef mstx het volgende:
Volgens mij klopt die niet.
Je hebt gelijk *) gisteren echt overheen gekeken, gelijk even proberen te fixen, maar verder nog tips? of is deze dirty manier goed genoeg? :+

Update:
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
<?php

error_reporting
(E_ALL);

function 
checkUrl($baseUrl$currentUrl$foundUrl)
{
    echo 
'Original foundUrl: ' $foundUrl '<br />';

    
// geen HTTP gevonden?
    
if (strtolower(substr($foundUrl07)) != "http://")
    {
        
// parse $foundURL
        
$p parse_url($foundUrl);
        
// geen hostname gevonden?
        
if (!isset($p['host']))
        {
            
$path '';
            
            
// parse current url
            
$p parse_url($currentUrl);
            
// explode directories
            
$dirs explode("/"$p['path']);
            
            
// kijken of er subdirectories gevonden zijn?!
            
if (count($dirs) > 1)
            {
                
// verwijder lege directories (eg ///)
                
foreach ($dirs AS $k=>$v)
                {
                    if (
strlen($v) == 0)
                    {
                        unset(
$dirs[$k]);
                    }
                }
                
// unset laatste directorie aangezien dat geen directory maar het aangeroepen bestand is
                
unset($dirs[count($dirs)]);
                
                
// reset array index
                
reset($dirs);
            }
            
            
// ../ gevonden in $foundURL?
            
if (strpos($foundUrl"../") > -1)
            {
                
$dotsCount 0;
                
// verwijder alle ../ en update counter
                
while (strpos($foundUrl"../") > -1)
                {
                    
$foundUrl substr($foundUrl3);
                    
$dotsCount++;
                }
                
                
// is aantal dirs groter dan $dotsCount?
                
if (count($dirs) > $dotsCount)
                {
                    
// verwijder te veel directories...
                    
for ($x 0$x $dotsCount$x++)
                    {
                        unset(
$dirs[count($dirs) - $x]);
                    }
                    
// genereer nieuwe path;
                    
$path implode("/"$dirs) . "/";
                }
            }
            
// ./ gevonden?
            
elseif (strpos($foundUrl"./") > -1)
            {
                
// gebruik volledig path
                
$path implode("/"$dirs) . "/";
                
$foundUrl substr($foundUrl2);
            }
            
// / is verwijzing voor root van domein.
            
elseif (substr($foundUrl01) == "/")
            {
                
// verwijder eerste /
                
$foundUrl substr($foundUrl1);
            }
            
            
// combineer nieuwe $foundUrl
            
$foundUrl $baseUrl $path $foundUrl;
        }
    }

    
// test case
    
echo 'BaseUrl: ' $baseUrl '<br />';
    echo 
'CurrentUrl: ' $currentUrl '<br />';
    echo 
'FoundUrl: ' $foundUrl '<br />';
}

$baseUrl 'http://www.yourwebsite.com/';
$currentUrl 'http://www.yourwebsite.com/blogs/archive/all.html';

checkUrl($baseUrl$currentUrl'../../../niets/test/adem.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'../../../../../niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'/niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'./niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'../niets.html');
echo 
'<hr>';
checkUrl($baseUrl$currentUrl'niets.html');
echo 
'<hr>';

?>
-kleine edit toevoeging comments-

Uitkomst (alleen het gefixte gedeelte):
1
2
3
4
Original foundUrl: ./niets.html
BaseUrl: http://www.yourwebsite.com/
CurrentUrl: http://www.yourwebsite.com/blogs/archive/all.html
FoundUrl: http://www.yourwebsite.com/blogs/archive/niets.html


[ Bericht 61% gewijzigd door Chandler op 16-05-2013 10:04:17 ]
Just say hi!
  donderdag 16 mei 2013 @ 10:56:39 #195
187069 slacker_nl
Sicko pur sang
pi_126573374
quote:
0s.gif Op donderdag 16 mei 2013 09:57 schreef Chandler het volgende:

Het gaat om parsen van links in een document ;)
Dus? Ahh, kutzooit, readlink -m is niet geimplementeerd in php. Dus..
In theory there is no difference between theory and practice. In practice there is.
  donderdag 16 mei 2013 @ 11:02:46 #196
12221 Tijn
Powered by MS Paint
pi_126573558
Wil je $baseUrl echt elke keer meegeven aan de functie? Dat is (binnen de applicatie) toch altijd dezelfde waarde? Ik zou er een constante van maken die je ergens in je config-file definieert.
pi_126573778
quote:
5s.gif Op donderdag 16 mei 2013 11:02 schreef Tijn het volgende:
Wil je $baseUrl echt elke keer meegeven aan de functie? Dat is (binnen de applicatie) toch altijd dezelfde waarde? Ik zou er een constante van maken die je ergens in je config-file definieert.
Nee maar is wel gemakkelijk om het zo in een test case te verwerken zodat ik deze gemakkelijk kan aanpassen ;)
Just say hi!
  donderdag 16 mei 2013 @ 11:23:05 #198
187069 slacker_nl
Sicko pur sang
pi_126574321
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
<?php

error_reporting
(E_ALL);

function 
checkUrl($currentUrl$foundUrl) {
    if (!
$foundUrl) {
        return 
$currentUrl;
    }

    if (
preg_match('/^[a-z]+?:\/\//'$foundUrl)) {
        return 
$foundUrl;
    }

    
$matches;
    
preg_match('/^([a-z]+?:\/\/)(.+)?/'$currentUrl$matches);
    
$iets=$matches[1];
    
$baseurl$matches[2];

    if(
preg_match('/^\//'$foundUrl)) {
        
$baseurl preg_replace('/\/.+/'''$baseurl);
        return 
"$iets$baseurl$foundUrl";
    }
    elseif (
preg_match('/^\.\//'$foundUrl)) {
        
$baseurl preg_replace('/\/$/'''$baseurl);
        
$foundUrl substr_replace($foundUrl"" ,02);
        return 
checkUrl("$iets$baseurl"$foundUrl);
    }
    elseif (
preg_match('/^\.\.\//'$foundUrl)) {
        
$baseurl preg_replace('/\/\w+\/?$/'''$baseurl);
        
$foundUrl substr_replace($foundUrl"" 03);
        return 
checkUrl("$iets$baseurl"$foundUrl);
    }
    
$currentUrl preg_replace('/\/?$/'''$currentUrl);
    return 
"$currentUrl/$foundUrl";
}

function 
is($found$want$desc) {
    if (
$want  == $found) {
        print 
"OK: $desc\n";
    }
    else {
        print 
"KO $desc: Wanted $want, got $found\n";
    }
}

is(checkUrl("http://x.nl/deep/shizzle/cabizzle"'/x.php'), 'http://x.nl/x.php''absolute path with dir ending with /');
is(checkUrl("""http://x.nl"), 'http://x.nl'"no current url");
is(checkUrl("http://x.nl"""), 'http://x.nl'"no href found");
is(checkUrl("http://x.nl"'/x.php'), 'http://x.nl/x.php'"absolute path");
is(checkUrl("http://x.nl/deep"'/x.php'), 'http://x.nl/x.php''absolute path with dir');
is(checkUrl("http://x.nl/deep/"'/x.php'), 'http://x.nl/x.php''absolute path with dir ending with /');
is(checkUrl("http://x.nl/deep/"'./x.php'), 'http://x.nl/deep/x.php''relative path, same dir');
is(checkUrl("http://x.nl/deep/"'../x.php'), 'http://x.nl/x.php''relative path, in higher/lower dir');
is(checkUrl("http://x.nl/deep/shizzle"'../../x.php'), 'http://x.nl/x.php''relative path, in higher/lower dir, but deeper');
is(checkUrl("http://x.nl/deep/shizzle"'./../x.php'), 'http://x.nl/deep/x.php''relative path, another option');


[ Bericht 31% gewijzigd door slacker_nl op 16-05-2013 11:43:25 (hehe, stomme removal van een returnvalue.. ) ]
In theory there is no difference between theory and practice. In practice there is.
pi_126591969
Ook leuk :@
Just say hi!
  donderdag 16 mei 2013 @ 19:02:04 #200
187069 slacker_nl
Sicko pur sang
pi_126594009
SPOILER: nog kekker
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
In theory there is no difference between theory and practice. In practice there is.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')