Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Aplikacja nie kończy działania
Forum PHP.pl > Forum > PHP
yankes
Aplikacja ma pobierać plik html / parsuje html i wstawia do bazy - napisana jest w symfony 1.4

przy plikach html do 2 mb działa oki - około 6000 rekordow wstawia do bazy i dziala oki

Główny kod wygląda tak:

  1. public function executeIndex(sfWebRequest $request)
  2. {
  3. if( $request->isMethod('post') ) {
  4. ....
  5. $this->_cleanTempTable(); // z tabeli tymczasowej wywal wszystkie dane
  6. $this->_importContent(); // czyta html i wstawia rekordy do bazy
  7. // tu następuje problem - robiłem tu die; i nic nie pomagało a dochodzi do tego miejsca bo po wstawieniu file_put_contents założył mi plik z treścią która podałem
  8. $this->_summary(); // generuje podsumowanie
  9. ....
  10. }
  11. }



Przed metodą _summary() robiłem zapis do plik - wykonywał się bez problemu. Podejrzewałem, że gdzieś przekracza przydzieloną pamięc. Ale funkcja memory_get_usage() zwraca wyniki na poziomie 100 MB a przydzielone jest 256 MB. Dziwi mnie też brak działania funkcji die();

ktoś ma jakiś pomysł ... ?
Crozin
Trochę za mało danych podałeś. Co konkretnie (kod) robią te trzy metody? Co jest w logach?
yankes
Metoda: _cleanTempTable

Główny kod:
  1. Doctrine_Core::getTable('Temp')->clean();


Wynik: oki - tabel wyczyszczona

-------------------------------------------------------
Metoda: _importContent

Główny kod:

Pobiera plik html - i czyta tr - błędów w kodzie html nie ma na 101%
  1. $document = new DOMDocument();
  2. $document->loadHTMLFile($file);
  3.  
  4.  
  5. $trs = $document->getElementsByTagName('tr');
  6. $rows = array();
  7.  
  8. foreach( $trs as $key => $tr) {
  9. foreach( $tr->childNodes as $key2 => $td) {
  10. $rows[$index][] = trim($td->nodeValue);
  11. }
  12. }
  13.  
  14. $connection = Doctrine_Manager::connection();
  15.  
  16. for($i=0; $i<count($rows); $i++)
  17. {
  18. $query = "INSERT INTO `temp` (...) VALUES ('');
  19. $connection->execute($query);
  20. }
  21.  
  22. // pętla for również się wykonuje - ilość rekordów w bazie zgadza się
  23.  


-------------------------------------------------------
Metoda: _summary
Wyświetla html ale do niej nie dochodzi więc kod zbędny



Pomiędzy 2 a 3 metodą program "gubi się" winksmiley.jpg - Wstawiałem die('stop') ale firefox dalej mieli i nic nie pokazuje. Ale jak zamiast die wstawiłem file_put_contenst('test.txt', '123'); to plik z zawartościa został utworzony, czyli php dochodzi do tego miejsca.. dziwne ;]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.