Vraag & Antwoord

Webprogrammeren & scripting

[PHP] File() leest niet het hele bestand in

10 antwoorden
  • [b:644fe86f72]Wat doet mijn script?[/b:644fe86f72] mijn script leest vanaf fok mijn profiel pagina in. Deze wordt opgeslagen in profile.html Profile.html wordt vervolgens door mijn script ingelezen en doorzocht naar een bepaalde waarde. als deze waarde is gevonden dan wordt deze opgeslagen in een database. [b:644fe86f72]Het probleem[/b:644fe86f72] het inlezen van profile.html m.b.v. file() lukt tot regel 76, daarna stopt het script met inlezen en geeft geen foutmelding terug. [b:644fe86f72]Wat denk ik dat het probleem zou kunnen zijn?[/b:644fe86f72] [list=1:644fe86f72] [*:644fe86f72] Memory limiet van php wordt overschreden [*:644fe86f72] Curl is nog bezig bestand aan het wegschrijven op moment van inlezen [/list:o:644fe86f72] [b:644fe86f72]Wat heb ik geprobeerd?[/b:644fe86f72] [*] Google [*] Got search [*] Error reporting op E_ALL zetten [*] De stuk code dat profile.html inleest in een apart bestand zetten en testen [i:644fe86f72] Dit werkt wel :?[/i:644fe86f72] [*] php memory limit verhoogd m.b.v. een ini_set [*] max_execution_time verhoogd naar 120 [*] php 60 seconden laten slapen na einde van curl. [b:644fe86f72]Script[/b:644fe86f72] zie[b:644fe86f72] [url=http://fia181-83.dsl.hccnet.nl/fok/posts-reader.phps]Deze url[/url][/b:644fe86f72] voor de source code Wie heeft een ideetje wat het kan zijn
  • [quote:940cf61cf4="The game"] zie[b:940cf61cf4] [url=http://fia181-83.dsl.hccnet.nl/fok/posts-reader.phps]Deze url[/url][/b:940cf61cf4] voor de source code Wie heeft een ideetje wat het kan zijn[/quote:940cf61cf4] [code:1:940cf61cf4] if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); unlink($local_file); exit; } [/code:1:940cf61cf4] [url=http://nl2.php.net/exit]exit[/url] beëindigt je script. Om uit de while loop te springen, moet je [url=http://nl2.php.net/break]break;[/url] gebruiken. En als je nog verder wilt zoeken in het bestand dan moet je helemaal niks plaatsen.
  • [quote:840778abb9="meneer_ed"][quote:840778abb9="The game"] zie[b:840778abb9] [url=http://fia181-83.dsl.hccnet.nl/fok/posts-reader.phps]Deze url[/url][/b:840778abb9] voor de source code Wie heeft een ideetje wat het kan zijn[/quote:840778abb9] [code:1:840778abb9] if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); unlink($local_file); exit; } [/code:1:840778abb9] [url=http://nl2.php.net/exit]exit[/url] beëindigt je script. Om uit de while loop te springen, moet je [url=http://nl2.php.net/break]break;[/url] gebruiken. En als je nog verder wilt zoeken in het bestand dan moet je helemaal niks plaatsen.[/quote:840778abb9] ik weet dat exit mijn script beeindigd. ik doet dat omdat, wannner het script daar is aan beland de waarde die ik moet hebben is gevonden en het script mag stoppen met uitvoeren, dan ben ik namelijk klaar ik ga nog eens dubbel checken op die regex maar die zou het probleem niet mogen geven. --edit-- en inderdaad de regex is niet het probleem zie ook hier een plaatje van de fout geladen pagina: http://fia181-83.dsl.hccnet.nl/fok/ERR.JPG
  • kijk eens wat er in needle zit (voor en na t splitsen). Aan t plaatje heb ik niet veel want ik kan niet zien wat er wel moet verschijnen want hij zuert dat ik JS uit heb staan wat helemaal niet t geval is. bedenk me plots waar t mis kan gaan. Als aan de 1e voorwaarde wordt voldaan maar daarbinnen niet aan de voorwaarde dan wordt i niet meer opgehoogd en zit hij dus in een oneindige lus. Beter is om het ophogen van i niet in de else te zetten maar helemaal los, dus zoiets: [code:1:398ad35507] while($i<1000) { echo($lines[$i]); //debug if(blabla) { hier je code } $i++; } [/code:1:398ad35507]
  • [quote:0d0ded77c7="marientje"]kijk eens wat er in needle zit (voor en na t splitsen). Aan t plaatje heb ik niet veel want ik kan niet zien wat er wel moet verschijnen want hij zuert dat ik JS uit heb staan wat helemaal niet t geval is. [/quote:0d0ded77c7] [url=http://fia181-83.dsl.hccnet.nl/fok/ORG.JPG]dit moet er verschijnen[/url] [quote:0d0ded77c7] bedenk me plots waar t mis kan gaan. Als aan de 1e voorwaarde wordt voldaan maar daarbinnen niet aan de voorwaarde dan wordt i niet meer opgehoogd en zit hij dus in een oneindige lus. Beter is om het ophogen van i niet in de else te zetten maar helemaal los, dus zoiets: [code:1:0d0ded77c7] while($i<1000) { echo($lines[$i]); //debug if(blabla) { hier je code } $i++; } [/code:1:0d0ded77c7][/quote:0d0ded77c7] helaas dat werkt ook niet om de een of andere reden komt hij dus wel in de loop maar stopt zonder reden bij regel 76
  • [quote:0fbfea156d="The game"]om de een of andere reden komt hij dus wel in de loop maar stopt zonder reden bij regel 76[/quote:0fbfea156d]Wat staat er dan in die regel?
  • inderdaad. En zet ipv exit in je code s een break neer. En dan na de body van de while een echo 'done'; ofzo. Dan kan je zien of de loop normaal wordt beeindigd of dat ie van buiten af wordt beeindigd.
  • [quote:9b10603116="meneer_ed"][quote:9b10603116="The game"]om de een of andere reden komt hij dus wel in de loop maar stopt zonder reden bij regel 76[/quote:9b10603116]Wat staat er dan in die regel?[/quote:9b10603116] [code:1:9b10603116] <tr class="a"><td style="background:#F5F5F0;"> </td><td>Signature:</td><td><a href="http://fia181-83.dsl.hccnet.nl/" target="_blank">Webserver</a> | <a href="http://fia181-83.dsl.hccnet.nl/fok/stats" target="_blank">Avatar stats</a> | <a href="http://tinyurl.com/evtf9" target="_blank">Mijn DVD Collectie</a> | <a href="http://forum.fok.nl/topic/850161" target="_blank">[TK] Diverse PC spellen</a></td></tr> [/code:1:9b10603116] [quote:9b10603116="marientje"]inderdaad. En zet ipv exit in je code s een break neer. En dan na de body van de while een echo 'done'; ofzo. Dan kan je zien of de loop normaal wordt beeindigd of dat ie van buiten af wordt beeindigd.[/quote:9b10603116] met de volgende code: [code:1:9b10603116] while($i<1000) { echo($lines[$i]); if(preg_match_all($regex,$lines[$i],$needle)) { $needle = split(' ',$needle[0][0]); if($needle[0] != '' && is_numeric($needle[0])) { $query = RunQuery("INSERT INTO `posts` (`posts`,`datum`,`ID`) VALUES('$needle[0]','".date('Y-m-d H:i:s')."','".$ID."')"); CloseConDB($con); unlink($local_file); //exit; echo("done<br>"); } } $i++; } echo("done_na_while"); [/code:1:9b10603116] krijg ik de eerste keer (als hij dus de profiel pagina ophaalt) alleen done_na_while terug de 2de keer (wanneer het lokale bestand bestaat) krijg ik done en Done_na_while terug. :-?
  • das raar, je zou toch denken dat de inhoud van $lines beide keren tzelfde is. Overigens zie ik nu geen break staan (waar eerst exit stond). Dat betekent dat als iets gevonden is hij nu toch doorgaat met lezen (tot regel 1000). Post ook eens regel 75, ik denk dat dat eigenlijk de interessante regel is. Of anders een andere in de buurt, waar "* gemiddeld * per dag" in staat.
  • [quote:dc96c97b1b="marientje"]das raar, je zou toch denken dat de inhoud van $lines beide keren tzelfde is. Overigens zie ik nu geen break staan (waar eerst exit stond). Dat betekent dat als iets gevonden is hij nu toch doorgaat met lezen (tot regel 1000). [/quote:dc96c97b1b] inderdaad ik heb ook getest door $i.$lines[$i] te echo'en zodat ik teweten kwam waar het mis ging... alleen na 76 telt hij netjes door tot 1000 (dat verschijnt immers op me scherm) alleen de bijbehorende html van het bestand worden niet getoond... [quote:dc96c97b1b] Post ook eens regel 75, ik denk dat dat eigenlijk de interessante regel is. Of anders een andere in de buurt, waar "* gemiddeld * per dag" in staat.[/quote:dc96c97b1b] dit is de code rond regel 75 [code:1:dc96c97b1b] <tr class="a"><td style="background:#F5F5F0;"> </td><td>Ondertitel:</td><td></td></tr> <tr class="a"><td style="background:#F5F5F0;"> </td><td>Signature:</td><td><a href="http://fia181-83.dsl.hccnet.nl/" target="_blank">Webserver</a> | <a href="http://fia181-83.dsl.hccnet.nl/fok/stats" target="_blank">Avatar stats</a> | <a href="http://tinyurl.com/evtf9" target="_blank">Mijn DVD Collectie</a> | <a href="http://forum.fok.nl/topic/850161" target="_blank">[TK] Diverse PC spellen</a></td></tr> <tr><td style="background:#F5F5F0;"> </td><td>Homepage:</td><td><a href="http://fia181-83.dsl.hccnet.nl/" title="Bezoek de homepage van mschol">http://fia181-83.dsl.hccnet.nl/</a></td></tr> <tr><td style="background:#F5F5F0;"> </td><td>Usericon(s):</td><td> [/code:1:dc96c97b1b] en dit is de code rond * gemiddeld * per dag [code:1:dc96c97b1b] <tr><td style="background:#F5F5F0;"> </td><td colspan="2" class="subtitle">Statistieken</td></tr> <tr><td style="background:#F5F5F0;"> </td><td>Geregistreerd op:</td><td>vrijdag 12 december 2003 @ 23:15</td></tr> <tr class="a"><td style="background:#F5F5F0;"> </td><td>Laatste bezoek:</td><td>0 seconden geleden.</td></tr> <tr><td style="background:#F5F5F0;"> </td><td>Aantal posts:</td><td>14249 (gemiddeld 15 per dag)</td></tr></tbody> </table> [/code:1:dc96c97b1b] hij loopt nog door na statistieken hoor, je kan anders ook de source bekijken door [url=http://fia181-83.dsl.hccnet.nl/fok/profile.html]hierzo[/url] te kijken :)

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.