![]() |
![]() ![]() |
![]() |
-Josef S.- |
![]()
Post
#1
|
Goście ![]() |
Witam
Mam plik duuuuży [na razie 5MB a będzie rósł] (xml) który chcę przetworzyć przez skrypt i dodać do bazy mySQL. Testowałem na kompie w domu napisany skrypt na win/apache - działa, ale w przypadku serwera na któwym to będzie finalnie - muszę najpierw przesłać ten plik... a to trwa i trwa i trwa... i wychodzą timeouty... nie mam wpływu na konfiguracje serwera ![]() PYTANIE: Czy możliwe jest użycie pliku w skrypcie php bez przesyłania pliku na serwer? ![]() Będę wdzięczny za jakiekolwiek podpowiedzi. Josef S. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 0 Dołączył: 13.04.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Z tego co wiem, nie.
Możesz natomiast przesłać go przez ftp i wykonać na serwerze... -------------------- Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
|
|
|
-Josef S.- |
![]()
Post
#3
|
Goście ![]() |
przy próbie wysylania przez ftp otrzymuje błąd wynikający z przekroczenia czasu dostepu do serwera
[CODE] <?php $hostip = gethostbyname($host); $conn_id = ftp_connect($hostip); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if ((!$conn_id) || (!$login_result)) { echo "FTP connection has failed!"; echo "Attempted to connect to $host for user $ftp_user_name"; die; } else { echo "Connected to $host, for user $ftp_user_name<br>"; echo "Host IP is $hostip<br>"; ftp_set_option($conn_id,FTP_TIMEOUT_SEC,360); ftp_pasv ( $conn_id, true ); // upload a file if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) { echo "successfully uploaded $file<br>"; } else { echo "There was a problem while uploading $file<br>"; } // close the connection ftp_close($conn_id); } ?> [CODE] zwraca info o przekroczonym czasie dostepu ![]() nie mam wpływu na konfiguracje serwera jakies sugestie? ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
To jest proste: zeby skrypt przetworzyl plik musi miec go u siebie na dysku serwera, lub musi go pobrac podczas wykonywania.
1. nie masz tego pliku na dysku wiec z tej opcji nie skorzystasz 2. podczas pobierania pliku (ftp czy fopen) zostaje przekroczony limit czasu wykonywania skryptu, tez odpada. Pomysl nad innym, rozwiazaniem. Jak czesto musisz ten plik przerabiac na serwerze -- moze wystarczy recznie (przez clienta ftp) przeslac ten plik a potem go przemielic? -------------------- Nie lubię jednorożców.
|
|
|
-Josef S.- |
![]()
Post
#5
|
Goście ![]() |
niestety baza musi byc aktualizowana codziennie
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 42 Pomógł: 0 Dołączył: 2.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
można przedłużyć limit w php (poszukam jutro)
lub wykonać to w trybie wsadomy prześłać na ftp na pomocą jakiegoś batcha wykonywanego za pomocą "harmonogramu" wyglad pliku wsadowego np: wsad.txt Cytat open twoj.serwer.ftp user twoj_login pass twoje_haslo bin hash cd /katalog/ mget plik.jpg bye następnie wykonać poleceniem ftp.exe -s:wsad.txt tyle ze plik wsadowy jest 'skomponowany' do pobrania plkiu a nie do wysylania wiec musisz go sobie troche przerobic pomoc dostepna w ftp.exe poprzez komende ? jak cos wymyslisz daj znac bo to akurat tez mój aktualny temat moze znajdzisz jakis program "autoftp" |
|
|
-Guest- |
![]()
Post
#7
|
Goście ![]() |
Możesz spróbować dać set_time_limit i przedłużyć czas wykonywania skryptu albo tak jak Ci podpowiadają ręcznie wgrywać na ftp a zrobić skrypt, który automatycznie go znajdzie, np. po dacie lub nazwie wg szablonu. Jeśli plik jest przesyłany raz dziennie, to nie powinno to być problemem.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
set_time_limit(0);
fopen albo fsockopen ja bym to chyba tak zrobil. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:29 |