Kom ihåg mig?
Home Menu

Menu


PHP skript dör utan varning eller felmeddelande

 
Ämnesverktyg Visningsalternativ
Oläst 2007-11-08, 20:39 #21
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Du måste lägga in fler felkontroller på fler ställen, t.ex:
var kollar du returnvärdet i Parse() funktionen?
returnvärdet på file_get_contents() ? Ifall returnvärdet blir FALSE kommer Parse() raden: $LEN=strlen($text) bli helt fel, som ett exempel...

ini_set() behövs bara sättas en gång, som det är nu sätts det varje gång ft.php kallar ParseFile()..

Lägg in flera echo så du får koll på värdena under resans gång.
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-11-09, 12:49 #22
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
Tack för tipsen Simon.

Visst, felhanteringen är lite bristfällig för tillfället.
Det är lite bökigare att implementera då skriptet anropas från en flash fil och jag kan inte ha någon output annat än från PHP filen som instansierar klasserna, så t.ex. die() eller exit() går tyvärr bort.
Jag debuggar i webbläsaren med echo just nu och kommer väl lägga till lite variabler jag kan följa för att ge detaljerad information till flash klienten om eventuella fel då systemet är live.

Returvärdet på Parse() är egentligen inte till mycket nytta.
Jag anger alltid ett state att gå vidare till eller ett stopp och jag har inte ens behövt köra echo på det för att kolla då det inte varit några frågetecken där.

Att filen finns kollar jag innan parsern körs, men det skadar kanske inte att dubbelkolla.

ini_set slängde jag bara in lite slarvigt där för ett hastigt test, men det fyller ingen funktion och skall väck.

Jag har kört en hel del echo's men plockade bort dem innan jag postade koden.

Hursomhelst verkar det som det inte är något direkt fel med koden som orsakar problemet. Uppenbarligen är den ineffektiv eller problematisk på något sätt eftersom jag har detta problemet, men den exekverar utan problem, skapligt snabbt och utan alltför mycket minnesanvändning då jag testat med massor med olika input filer.
Det är bara att den dör efter ett visst antal händer

En sak jag märkt gör att den klarar några händer till är om jag kör flush() efter varje hand.
Egentligen skall inte skriptet generera någon output, och några händer extra gör ingen större skillnad i praktiken, men det kanske kan vara en ledtråd vad det är som spökar?
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-11-09, 13:20 #23
SimonPs avatar
SimonP SimonP är inte uppkopplad
Mycket flitig postare
 
Reg.datum: May 2006
Inlägg: 832
SimonP SimonP är inte uppkopplad
Mycket flitig postare
SimonPs avatar
 
Reg.datum: May 2006
Inlägg: 832
Testa lägg in typ: usleep(100000) ibörjan i ParseFile() funktionen, för att slöa ner det en en tiondelssekund och se om det blir nån skillnad.
Eftersom file_get_contents både öppnar och stänger filen kanske inte OS:et hinner stänga den innan nästa anrop.

Jag vet att man kan få mkt konstiga fel i PHP ifall man gör snabba itererande filoperationer på samma fil.
SimonP är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-11-09, 14:05 #24
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
blixtsystems blixtsystems är inte uppkopplad
Flitig postare
 
Reg.datum: Mar 2005
Inlägg: 442
Jag har testat att köra sleep mellan varje hand och nu har jag även ändrat så att jag läser in hela filen en gång och sparar den i en variabel och sedan plockar ut relevant bit med substr istället.
Som vanligt kör skriptet precis lika långt.

Jag har även funderat på om man kunde splitta upp filen i flera delar och ominstansiera klasserna för varje del, men jag kommer inte på något sätt att smidigt lösa det.
Att köra unset() på en klass funkar ju inte...finns det någon funktion för att ta bort en klass?
blixtsystems är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 12:17.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017