Avatar billede webcreator Nybegynder
09. februar 2005 - 22:12 Der er 11 kommentarer og
1 løsning

While-løkke giver problemer i parse-funktion

Hej Eksperter.

Jeg er ved at lave et script i PHP, der kan parse lidt simpel HTML. Jeg er dog stødt ind i et besynderligt problem. Min kode kan findes her : http://powerzone.dk/code.txt

Fejlen består i, at min store while-løkke kun gennemløbes én gang. Og dét på trods for, at variablen $idxStart indeholder en tal-værdi. Hvad søren går der galt?
Avatar billede erikjacobsen Ekspert
09. februar 2005 - 22:23 #1
Jeg har ikke sat mig ind i din kode, ud over at se at den er "svært tilgængelig".

Skal du bare finde tekst mellem <b> og </b> ?? Hvad med et lille simpelt, regulært udtryk?
Avatar billede jakoba Nybegynder
09. februar 2005 - 22:30 #2
Kunne det være at den streng du leder i har en "<br>" allerforrest i strengen ?
så vil du nemlig fp $idxstart = 0  (tallet nul) og det wil din while løkke læse som false.

        $idxstart = false;      // det er ALTID en god ide at initiere sine variable
    while ( is_int($idxStart) || $firstRun )
...
        if ( is_int($idxStart) && $idxEnd > 0)    //nu kan den også bælde ved 0

mvh JakobA
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:30 #3
Nej, jeg ønsker ikke at benytte regulære expressions. Ellers tak :)
Koden skal bruges til, at hente alt muligt forskelligt ud af HTML dokumenter.

Er koden svært tilgængelig? Jeg har da sat den fint op og kommenteret med mere. Og det burde være ret ligetil. Skriver jeg 'return $idxStart' til sidst i min while-løkke, får jeg tallet 3031. Burde min løkke så ikke fortsætte når $idxStart indeholder noget? (forudsat at jeg fjerner 'return ..' naturligvis).
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:32 #4
Hej Jakob.

Jeg tror ikke det er dét der er problemet, da $idxStart indeholder tallet 3031 efter første gennemløb. Faktisk initialiserer jeg også alle mine variabler. Men da jeg ikke går ud fra, at det er strængt nødvendigt, undlod jeg det for at gøre koden mere overskuelig :)
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:33 #5
Sorry, den indeholder 3301 - men det skulle ikke ændre på noget :)
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:39 #6
Jeg har fundet fejlen.
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:39 #7
Det viste sig, at jeg faktisk havde skabt en uendelig løkke i stedet. Lidt dumt at jeg ikke opdagede det. Beklager. Smid et par svar alligevel - points skal i have :)
Avatar billede webcreator Nybegynder
09. februar 2005 - 22:40 #8
Det er sjovt som jeg altid finder fejlen et stykke tid efter, at jeg opretter et spørgsmål her på Eksperten. Forinden havde jeg brugt en hel time på det :)
Avatar billede erikjacobsen Ekspert
09. februar 2005 - 22:40 #9
nej tak
Avatar billede webcreator Nybegynder
10. februar 2005 - 00:20 #10
Jakob > Skal vi dele ? :)
Avatar billede jakoba Nybegynder
10. februar 2005 - 02:29 #11
nej tak, tag du dem.
Avatar billede webcreator Nybegynder
14. februar 2005 - 18:13 #12
Takker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester