Hallo iedereen.
Ik ben dus bezig met een zoekengine voor een website. Deze zoekt plain HTML/PHP files af naar een bepaald woord, en maakt dan een tweedimensionale array aan met de resultaten. Nu, een van de dingen die ik graag zou hebben is een 'Snapshot' (de beste naam die ik ervoor kon bedenken) van de plaats waar het woordje werd gevonden. (Of een variant op het woordje, mits ik met sililar_text() werk)
De file wordt hiervoor geladen in een array, dmv explode. (eerst strip_tags() natuurlijk) Het leek me ook redelijk gemakkelijk om deze array dan te gebruiken om het Snapshot te maken.
Hiervoor maakte ik dan een simpele functie aan, de volgende:
(Die ik in een nieuw bestandje heb geplaatst om te testen of hij wel werkt, ook output ik op bepaalde plaatsen variabelen om hun waardes te checken)
Dit geeft als output:
Maar zoals jullie zien wordt niet alles uitgevoerd. Na een klein onderzoekje, bleek dat simpelweg de FOR loop niet word uitgevoerd, aangezien als ik in het begin bijvoorbeeld 'test' toeken aan $snapShot, echo'ed dit wel 'testtest'. (1x in loop en 1x na functieaanroep). Aan de if-statement ligt het ook niet, want als ik deze verwijder krijg ik exact hetzelfde resultaat.
Heeft er toevallig iemand een idee waarom de FOR loop niet wordt uitgevoerd?
Ik ben dus bezig met een zoekengine voor een website. Deze zoekt plain HTML/PHP files af naar een bepaald woord, en maakt dan een tweedimensionale array aan met de resultaten. Nu, een van de dingen die ik graag zou hebben is een 'Snapshot' (de beste naam die ik ervoor kon bedenken) van de plaats waar het woordje werd gevonden. (Of een variant op het woordje, mits ik met sililar_text() werk)
De file wordt hiervoor geladen in een array, dmv explode. (eerst strip_tags() natuurlijk) Het leek me ook redelijk gemakkelijk om deze array dan te gebruiken om het Snapshot te maken.
Hiervoor maakte ik dan een simpele functie aan, de volgende:
(Die ik in een nieuw bestandje heb geplaatst om te testen of hij wel werkt, ook output ik op bepaalde plaatsen variabelen om hun waardes te checken)
PHP:
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
| <?php function GetSnapShot($searchArray, $foundWord) { $foundWordKeyArr = array_keys($searchArray, $foundWord); $foundWordKey = (int)$foundWordKeyArr[0]; echo '<br>' . $foundWordKey; if ($foundWordKey != 0) { for($i = 0; $i == 14; $i++) { $index = $foundWordKey - 7 + $i; echo $index; if ($searchArray[$index] != '') { $index = $foundWordKey - 7 + $i; $snapShot = $snapShot . ' ' . $searchArray[$index]; } } echo $snapShot; return $snapShot; } } $searchArray = explode(' ', 'Just Some Random Text To See If My Snapshots Are Actually Taken By This Function'); print_r($searchArray); echo '<br><br>'; echo GetSnapShot($searchArray, 'My'); ?> |
Dit geeft als output:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Array
(
[0] => Just
[1] => Some
[2] => Random
[3] => Text
[4] => To
[5] => See
[6] => If
[7] => My
[8] => Snapshots
[9] => Are
[10] => Actually
[11] => Taken
[12] => By
[13] => This
[14] => Function
)
<br><br><br>7 |
Maar zoals jullie zien wordt niet alles uitgevoerd. Na een klein onderzoekje, bleek dat simpelweg de FOR loop niet word uitgevoerd, aangezien als ik in het begin bijvoorbeeld 'test' toeken aan $snapShot, echo'ed dit wel 'testtest'. (1x in loop en 1x na functieaanroep). Aan de if-statement ligt het ook niet, want als ik deze verwijder krijg ik exact hetzelfde resultaat.
Heeft er toevallig iemand een idee waarom de FOR loop niet wordt uitgevoerd?