abonnement Unibet Coolblue
  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 >:)
  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')