Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[PHP] FOR loop word niet uitgevoerd?

Pagina: 1
Acties:
  • 187 views

Verwijderd

Topicstarter
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)
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? _/-\o_

  • newpegasus
  • Registratie: Juni 2003
  • Laatst online: 13-03-2022

newpegasus

Hertog

kijk eens naar de == operator in de For loop ;)

GuitarFacts | Last.fm | Google Zoekmachine Optimalisatie


  • martijnve
  • Registratie: December 2004
  • Laatst online: 14-11 17:12
Er staat begin bij $i = 0 en ga door zolang $i gelijk is aan 14 :-P
Hij doet dus precies wat je vraagt :-P
Niets.

[ Voor 95% gewijzigd door martijnve op 08-10-2008 20:01 . Reden: lange quote weggehaald ]

Mini-ITX GamePC: Core i5 3470 | 16GB DDR3 | GTX 970 4GB | Samsung 830 128GB | Dell u2711 (27", IPS,1440p), 2343BW


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 02:24

Creepy

Tactical Espionage Splatterer

No offence, maaruh, dit is wel hel erg basic lijkt me? De syntax van een forloop is niet echt moeilijk en op het internet zijn ontzettend veel voorbeelden te vinden hoe een forloop werkt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.