[php] script geeft verkeerde output maar zie geen fout

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
Hoi
ik probeer de filmpjes te tonen die de bios vandaag draait. maar hij geeft telkens verkeerde output

http://www.nfshome.com/martin/bios.php

code:
1
2
3
4
5
6
7
8
9
10
11
output:

film: Bad Boys 2 (16jr) : 19:45
film: Intolerable Cruelty : 20:15
film: Jeepers Creepers 2 (16jr)
film: > : 18:15
film: Legally Blonde 2 : 18:30
film: Phileine Zegt Sorry : 20:15
film: Sneak Preview
film: /td> : 20:15
film: The Matrix:Revolutions : 18:45, 21:45



en ik ben al bijna een uur bezig om het goed te krijgen maar het lukt me gewoon niet. heeft mischien iemand een id hoe ik het kan oplossen?

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

$url1 = "http://www.cineworld.nl/ShowPerf.asp?Datum=" . date("d-m-Y") . "&Part=Evening";
$bestand = fopen ($url1, "r");
if ($bestand) { 
while (!feof ($bestand)) {
    $regel = fgets ($bestand, 1024);
    if (eregi ("(.*)<span(.*)class=(.*)redtxt(.*)>(.*)</span>(.*)", $regel, $matches)) {
    $films = str_replace("<A href=Movie.asp?ID=", "|*|<A href=Movie.asp?ID=", $regel);
    $films = strip_tags("$films");
    $films = ereg_replace("&nbsp;", " ", $films);
    $films = str_replace("\n", "", $films);
    $films = str_replace("\r", "", $films);
    $filmsa = explode("|*|", $films);

    foreach ($filmsa as $film) {
    if (!eregi ("(.*)onderstaande(.*)tijden(.*)", $film, $matches)) {       
        echo "film: $film<br>\n";
    }
    }
    }
}
fclose($bestand);
}

?>

Acties:
  • 0 Henk 'm!

  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

Ik denk omdat er harde returns in de html-code staan.. Je leest in je stukje regel voor regel alles in, dus ongeveer na de derde film gaat het fout omdat er een harde return staat:

bv. zoiets dus:

<span class="redtxt">Phileine Zegt Sorry</span></a><

en dan gaat het op de volgende regel verder met

/td><td width="5" align="left"> : </td>

Omdat deze regels apart worden ingelezen en de tags apart worden verwijderd, wordt het begin van de 2e regel niet als tag gezien..

Zoiets dus zeg maar denk ik..

[ Voor 13% gewijzigd door Tirillo op 12-11-2003 01:42 ]

...


Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
Jamaar alles staat op 1 lijn :(
alle films op 1 lijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Martink schreef op 12 november 2003 @ 09:56:
Jamaar alles staat op 1 lijn :(
alle films op 1 lijn.
Zet je toch gewoon een extra <br> in je code?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Dan zul je die ene lijn ook helemaal moeten inlezen en niet in brokken van 1024 tekens

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
Ow ja, Moet ik dan gewoon 1024 weghalen? of moet ik hem vergroten?

[ Voor 5% gewijzigd door Martink op 12-11-2003 10:06 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Hoe komt dat trouwens dat alles op een lijn staat? Waar komen die gegevens precies vandaan...? En wat misschien handig zou zijn is dat ze getrend worden door een character die niet in films ofzo voorkomt... dus bijv een | ... dan zou je kunnen zoeken naar die character en zou weten hoeveel tekens je moet inlezen... of gewoon niet alles op een regel schrijven, zou natuurlijk ook kunnen :) of een vaste lengte gebruiken voor de films...

Acties:
  • 0 Henk 'm!

  • Martink
  • Registratie: Juni 2001
  • Laatst online: 11-02 12:38
Verwijderd schreef op 12 november 2003 @ 10:08:
Hoe komt dat trouwens dat alles op een lijn staat? Waar komen die gegevens precies vandaan...? En wat misschien handig zou zijn is dat ze getrend worden door een character die niet in films ofzo voorkomt... dus bijv een | ... dan zou je kunnen zoeken naar die character en zou weten hoeveel tekens je moet inlezen... of gewoon niet alles op een regel schrijven, zou natuurlijk ook kunnen :) of een vaste lengte gebruiken voor de films...
Hij leest de films van http://www.cineworld.nl/S...m=12-11-2003&Part=Evening

Acties:
  • 0 Henk 'm!

  • Tirillo
  • Registratie: Januari 2002
  • Niet online

Tirillo

Joker of Unauwen

Martink schreef op 12 november 2003 @ 10:04:
Ow ja, Moet ik dan gewoon 1024 weghalen? of moet ik hem vergroten?
Dat ligt eraan.. Zo te zien wordt er als je PHP 4.2.0 hebt en je laat het weg zowieso maar 1024 ingelezen, maar bij 4.3.0 alles.
Dus je zou even moeten kijken welke versie je hebt en hoe fgets in die versie werkt. Ook moet je kijken wat het maximale aantal karakters is dat ingelezen kan worden en hoeveel de regel op die pagina er meestal heeft. Nu zijn het er zo rond de 3000, dus dit zou volgens mij niet zó'n probleem moeten zijn.

...


Acties:
  • 0 Henk 'm!

Verwijderd

wat ik me net bedenk is dat je ook naar de ':' kan zoeken... en dan weet je tot welke positie de titel loopt... weet je ook wat je in moet lezen namelijk:

aantalposities titel + 1 postitie voor de ":" + 1 positie voor de spaatie + 5 posities voor de tijd
Pagina: 1