FAQ |
Kalender |
![]() |
#21 | |||
|
||||
Mycket flitig postare
|
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. |
|||
![]() |
![]() |
![]() |
#22 | ||
|
|||
Flitig postare
|
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? |
||
![]() |
![]() |
![]() |
#23 | |||
|
||||
Mycket flitig postare
|
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. |
|||
![]() |
![]() |
![]() |
#24 | ||
|
|||
Flitig postare
|
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? |
||
![]() |
![]() |
Svara |
|
|