Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Aplikacja nie kończy działania
yankes
post 19.01.2011, 14:41:04
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 13.01.2006

Ostrzeżenie: (0%)
-----


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ł ... ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Crozin
post 19.01.2011, 14:51:27
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Trochę za mało danych podałeś. Co konkretnie (kod) robią te trzy metody? Co jest w logach?
Go to the top of the page
+Quote Post
yankes
post 19.01.2011, 15:00:57
Post #3





Grupa: Zarejestrowani
Postów: 41
Pomógł: 1
Dołączył: 13.01.2006

Ostrzeżenie: (0%)
-----


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 ;]
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:15