[php] grote file laden

Pagina: 1
Acties:

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Met 'file' kan je een file laden in een array. Nu is de file die ik wil laden 42Mb groot. Lokaal werkt het wel, maar op de server bij m'n provider niet. Vraag me niet waarom dat ding zo groot is, daar kan ik niks aan doen.

Ik veronderstel dat dit te maken heeft met de geheugen setting in de config-file van php. Lokaal staat deze echter op 8Mb, terwijl het hier dus goed werkt. Ik krijg geen foutmelding die de zaak verduidelijkt. Het script stopt gewoon...

Iemand enig idee hoe dat komt en wat er aan te doen is?

[ specs ] [ Tweaker gallery ]


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Kijk eens met phpinfo() wat je geheugen-settings bij je provider zijn...

Als die ergens een 8 mb limiet aangeeft, probeer dan eens een file van 9 mb in dat array te proppen en daarna eentje van 7 mb.

Als er simpelweg te weinig geheugen beschikbaar is, zijn er natuurlijk talloze manieren te bedenken om die file te splitsen etc.

This can no longer be ignored.


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Bestand eerst in stukjes knippen, en daarna ermee aan de slag gaan? Of even contact opnemen met je hostingprovider, of er in de logs misschien iets te vinden is, en of het opgelost kan worden.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Wat doe je met zo'n bestand?

Het enige wat er werkelijk aan te doen is, is die data anders op te slaan.

Mischien werkt het lokaal wel aangezien je een dedicated server hebt, maar waneer je zoiets gaat proberen op een server waar ook andere mensen gebruik van maken (ook merdere bezoekers naar je eigen site) dan heb je natuurlijk gelijk een heel andere omgeving.

Verder ben ik toch erg benieuwd naar waarom dat ding zo groot is.

Bij veel it problemen zit de oplossing vaak in een andere hoek dan dat de oplosser denkt. Waarschijnlijk is het toch wel mogelijk en zeker handiger om dat bestand toch iets anders op te slaan.

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


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En moet je perse de file in een array laden?

Of kan je hem ook sequentieel doorlezen?
Scheelt _enorm_ veel geheugen als je dat laatste kan doen.

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Hm, ik zat zelf ook al aan sequentieel lezen te denken. Ik stukken knippen voel ik niet zo veel voor. Wordt zo trial-and-error achtig. In de file staat allerlei info die gefilterd moet worden. Dit is een eenmalig proces, maar moet op de webserver gebeuren, aangezien er nog Flash front-end aanvast hangt, dus ik kan geen andere taal gebruiken.

Ik ga het sequentieel lezen is proberen. Het zal wel wat langer duren dan, maargoed. Dat maakt niet zo uit. Beter dan 42Mb met de hand invoeren. :)

Thanks, ik laat 't wel horen als 't werkt of niet...

[ specs ] [ Tweaker gallery ]


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Nee, dat hoeft niet eens langer te duren :)

In theorie kan het zelfs korter duren, aangezien voor file(); ook eerst de file per regel sequentieel gelezen zal moeten worden en dan wordt er nog een array van gemaakt ook :)

  • Explore
  • Registratie: Maart 2001
  • Laatst online: 08-04-2011

Explore

Op zoek naar werk

Topicstarter
Helaas hielp het sequentieel lezen niet echt. De file die ingelezen wordt, wordt regel voor regel gefilterd en bepaalde informatie ervan wordt opgeslagen in een array. Ik liep dus weer tegen m'n geheugen grens aan. Ik heb dit opgelost door de zaak op een andere server te zetten (heb nog ergens een dedicated server tot m'n beschikking) en daar kon ik de geheugen limiet in PHP bijstellen. Uiteindelijk werkte het toen ik 100Mb gealloceerd had voor m'n PHP scripts. :) Ahem...

Het resultaat is verbluffend leuk om te zien (wordt grafisch zichtbaar), maar helaas mag ik het niet laten zien... Het uiteindelijke resultaat kan je wel zien, maar nu nog niet. We zijn nog aan 't werk. Over een maandje ofzo staat het online en dan geef ik wellicht nog een gil.

[ specs ] [ Tweaker gallery ]

Pagina: 1